Scrapy shell
Convert a curl command into Scrapy code for the shell and for your spider.
scrapy.Request and calls fetch(), so you can inspect the response straight away.parse callback, plus an optional start_requests() for Scrapy older than 2.13.FormRequest with a formdata dict for form posts, JsonRequest for JSON bodies, or a plain Request that sends the body byte for byte.scrapy-impersonate settings, with a warning when the copied User-Agent doesn't match the browser you impersonate.@file bodies, multipart uploads and digest or NTLM auth, are flagged instead of silently dropped.Yes. The converter runs entirely in your browser and nothing you paste is sent anywhere. The code is open source, so you can check, or download the repo and open index.html offline.
scrapy.Request.from_curl()?Request.from_curl() builds a request object at runtime and ignores options it doesn't understand. This tool gives you readable code to edit (headers, a cookies dict, form or JSON payloads), a full spider, a curl_cffi check script and warnings about anything that won't translate exactly.
Often the site checks the TLS or HTTP/2 fingerprint, not just headers. Run the generated curl_cffi script: if it succeeds while plain Scrapy fails, enable the scrapy-impersonate option for the spider.
The spider targets current Scrapy and its start() method. Tick “Also support Scrapy < 2.13” to add start_requests() for older versions. The generated code is tested against the real Scrapy, scrapy-impersonate and curl_cffi libraries.