1、可以使用`yield scrapy.FormRequest(url,formdata,callback)`方法发送POST请求。
其中构造参数formdata可以是字典,也可以是可迭代的(key,value)元组,代表着需要提交的表单数据。
2、如果希望程序执行一开始就发送POST请求,可以重写Spider类的`start_requests(self)`方法,并且不再调用start_urls里的url。
import scrapy class PostSpider(scrapy.Spider): name = 'post' allowed_domains = ['http://fanyi.youdao.com/'] start_urls = ['http://http://fanyi.youdao.com//'] #如果想要爬虫在一开始的时候就发送post请求,那么就需要在爬虫类中重写start_requests(self)方法, #并且不再调用start_urls里面的url,如果不重写start_requests(self)那么爬虫会自动获取start_urls里面的url def start_requests(self): url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule" formdata = { "i": "狗", "from": "AUTO", "to": "AUTO", "smartresult": "dict", "client": "fanyideskweb", "salt": "16126984518491", "sign": "32f75e6c239f04d7c8c61d9e8abeb677", "ts": "1612698451849", "bv": "6a1ac4a5cc37a3de2c535a36eda9e149", "doctype": "json", "version": "2.1", "keyfrom": "fanyi.web", "action": "FY_BY_REALTlME" } yield scrapy.FormRequest(url=url,formdata=formdata,callback=self.parse) def parse(self, response): print('*'*20) print(response.text) print('*'*20)