post请求,一定要重新调用父类的 start_requests(self)方法
方法1:(推荐)
重构start_requests
def start_requests(self):
data = {
'source': 'index_nav',
'redir': 'https://www.douban.com/',
'....'
}
for url in self.start_urls:
yield scrapy.FormRequest(url=url, formdata=data, callback=self.parse)
注意,post请求头需要在setting中配置
UA不要设置到请求头中,单独设置 COOKIES也是要单独写
DEFAULT_REQUEST_HEADERS = {
'X-CSRF-Token': 'rXzQIxF01Y3lJVYBQsIhp0wwecirJSO8',
}
yield scrapy.FormRequest(url, formdata=data, cookies=cookie,callback=self.parse)
注意!! cookies 设置只需要第一次设置后面不需要再设置,会自动携带
方法2:
重构start_requests
def start_requests(self):
yield scrapy.Request(url=url, callback=self.parse, method='post', body=data)