我正在使用Scrapy将POST请求复制到网站,并且我确定我传递了正确的表单参数,但网站却以某种方式没有响应。
从Chrome复制curl
请求得到(已修改):
curl 'https://example.com/somepath' -H 'origin: https://example.com/' -H 'x-requested-with: XMLHttpRequest' -H 'pragma: no-cache' -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36' -H 'content-type: application/json'--data '{"foor":"var"}' --compressed
这是我的Scrapy请求:
FormRequest(url="https://example.com/somepath", formdata={'foo': 'var'})
答案 0 :(得分:1)
您将缺少包含Content-Type
标头的信息,而且您将无法使用FormRequest
进行该请求。只需将正常的Request
与正确的身体配合使用即可:
import json
...
Request(
url="https://example.com/somepath",
body=json.dumps({'foo': 'var'}),
headers={'Content-Type': 'application/json'},
)