scrapy Post 发送数据是我们通常会用
yield scrapy.FormRequest(
url = url,
formdata = {"email" : "xxx", "password" : "xxxxx"},
callback = self.parse_page
)
来发送请求,但这是发送header为
'Content-Type', 'application/x-www-form-urlencoded
的数据,有时候我们做一些爬虫,会post发送json数据,否则不能返回正确的结果,如果直接用request很方便,但在scrapy里就需要这样用
yield Request(url, method="POST", body=json.dumps(data), headers={'Content-Type': 'application/json'},callback=self.parse_json)
或者:
yield scrapy.FormRequest(url=url,body=json.dumps(data),headers=header,cookies=self.cookie,callback=self.get_message)
这样就可以发送json 数据了,
总之,接受参数的formdata要修改为body