重寫父類中的一個方法(start_requests):該方法默認可以對start_urls列表中的元素進行get請求的發送
1.將Request方法中method參數賦值成post
2.FormRequest()可以發起post請求(推薦)
實例:發送post請求抓取百度翻譯
spider文件
import scrapy
import json
class PostdemoSpider(scrapy.Spider):
name = 'postDemo'
# allowed_domains = ['www.baidu.com']
start_urls = ['https://fanyi.baidu.com/sug']
# 該方法其實是父類中的一個方法:該方法可以對start_urls列表中的元素進行get請求的發送
# 發起post:
# 1.將Request方法中method參數賦值成post
# 2.FormRequest()可以發起post請求(推薦)
def start_requests(self):
# for url in self.start_urls:
# yield scrapy.Request(url,callback=self.parse)
print('start_requests()')
# post請求的參數
data = {
'kw': 'dog',
}
for url in self.start_urls:
yield scrapy.FormRequest(url,callback=self.parse,formdata=data)
def parse(self, response):
jsobj = json.loads(response.body) # json處理
fanyi_data = jsobj['data']
print(fanyi_data)