{"slug": "curl-cffi", "name": "curl_cffi", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 3, "warners": 0, "score": 2.661, "rising": -0.98, "first": "2026-01-21", "latest": "2026-07-18", "why": "the first library I reach for in that situation is curl_cffi", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 0, "warn": 0}, "spark": [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "the first library I reach for in that situation is curl_cffi", "kind": "", "icon": false, "domain": null, "github_repo": "github.com/lexiforest/curl_cffi", "official_url": "https://github.com/lexiforest/curl_cffi", "pricing": "", "aliases": ["curl_cffi"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 783378096, "item_id": 48961131, "url": "https://news.ycombinator.com/item?id=48961131", "by": "andrewtorkbaker", "date": "2026-07-18", "version": null, "stance": "recommend", "quote": "the first library I reach for in that situation is curl_cffi", "excerpt": "+1 to the AMC Metreon being one of the toughest. Of all the theaters I'm monitoring, it's probably in the top 3 of fewest seats opening up. My best guess is that SF is just a market where demand far exceeds supply. But I am seeing a few every day, and I'm guessing it will get better after opening weekend too. My system checks every 10 mins leading up to 24 hours before showing, then ramps up to every 60 seconds. Re: ", "context": "", "use_case": "Bypassing Cloudflare blocking", "switched_from": "", "story": "Show HN: Get alerts for good seats at 70mm IMAX showings of The Odyssey"}, {"id": 766906961, "item_id": 47931685, "url": "https://news.ycombinator.com/item?id=47931685", "by": "safehuss", "date": "2026-04-28", "version": null, "stance": "recommend", "quote": "API-based scraper (also using curl_cffi)", "excerpt": "This is awesome! Worked on something similar albeit a different industry. For the more challenging scrapes, would highly recommend using the Chrome Devtools MCP to be able to attach the network requests, being made by the browser to the site, as context for your agent/LLM chat - this approach really helped me to write a solid API-based scraper (also using curl_cffi) and bypassed the old tedious playwright-based appro", "context": "", "use_case": "API-based scraping", "switched_from": "", "story": "Scraping 241 UK council planning portals \u2013 2.6M decisions so far"}, {"id": 747387569, "item_id": 46711723, "url": "https://news.ycombinator.com/item?id=46711723", "by": "renegat0x0", "date": "2026-01-21", "version": null, "stance": "recommend", "quote": "with a few lines you can do implement scraper using curl cffi", "excerpt": "Scraping is hard, and is not hard that much at the same time. There are many projects about scraping, so with a few lines you can do implement scraper using curl cffi, or playwright. People complain that user-agent need to be filled. Boo-hoo, are we on hacker news, or what? Can't we just provide cookies, and user-agent? Not a big deal, right? I myself have implemented a simple solution that is able to go through many", "context": "", "use_case": "", "switched_from": "", "story": "Waiting for dawn in search: Search index, Google rulings and impact on Kagi"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["bypassing cloudflare blocking", "api-based scraping"], "compared": [{"slug": "playwright", "name": "Playwright", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48960551", "title": "Show HN: Get alerts for good seats at 70mm IMAX showings of The Odyssey", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47931470", "title": "Scraping 241 UK council planning portals \u2013 2.6M decisions so far", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46708678", "title": "Waiting for dawn in search: Search index, Google rulings and impact on Kagi", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {"recommend": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {"recommend": 1}, "2026-05": {}, "2026-06": {}, "2026-07": {"recommend": 1}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 783378096, "item_id": 48961131, "url": "https://news.ycombinator.com/item?id=48961131", "by": "andrewtorkbaker", "date": "2026-07-18", "version": null, "stance": "recommend", "quote": "the first library I reach for in that situation is curl_cffi", "excerpt": "+1 to the AMC Metreon being one of the toughest. Of all the theaters I'm monitoring, it's probably in the top 3 of fewest seats opening up. My best guess is that SF is just a market where demand far exceeds supply. But I am seeing a few every day, and I'm guessing it will get better after opening weekend too. My system checks every 10 mins leading up to 24 hours before showing, then ramps up to every 60 seconds. Re: ", "context": "", "use_case": "Bypassing Cloudflare blocking", "switched_from": "", "story": "Show HN: Get alerts for good seats at 70mm IMAX showings of The Odyssey"}, {"id": 766906961, "item_id": 47931685, "url": "https://news.ycombinator.com/item?id=47931685", "by": "safehuss", "date": "2026-04-28", "version": null, "stance": "recommend", "quote": "API-based scraper (also using curl_cffi)", "excerpt": "This is awesome! Worked on something similar albeit a different industry. For the more challenging scrapes, would highly recommend using the Chrome Devtools MCP to be able to attach the network requests, being made by the browser to the site, as context for your agent/LLM chat - this approach really helped me to write a solid API-based scraper (also using curl_cffi) and bypassed the old tedious playwright-based appro", "context": "", "use_case": "API-based scraping", "switched_from": "", "story": "Scraping 241 UK council planning portals \u2013 2.6M decisions so far"}, {"id": 747387569, "item_id": 46711723, "url": "https://news.ycombinator.com/item?id=46711723", "by": "renegat0x0", "date": "2026-01-21", "version": null, "stance": "recommend", "quote": "with a few lines you can do implement scraper using curl cffi", "excerpt": "Scraping is hard, and is not hard that much at the same time. There are many projects about scraping, so with a few lines you can do implement scraper using curl cffi, or playwright. People complain that user-agent need to be filled. Boo-hoo, are we on hacker news, or what? Can't we just provide cookies, and user-agent? Not a big deal, right? I myself have implemented a simple solution that is able to go through many", "context": "", "use_case": "", "switched_from": "", "story": "Waiting for dawn in search: Search index, Google rulings and impact on Kagi"}]}