python爬虫之Scrapy框架的post请求和核心组件的工作 流程
生活随笔
收集整理的這篇文章主要介紹了
python爬虫之Scrapy框架的post请求和核心组件的工作 流程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python爬蟲之Scrapy框架的post請求和核心組件的工作 流程
一 Scrapy的post請求的實現
在爬蟲文件中的爬蟲類繼承了Spider父類中的start_urls,該方法就可以對start_urls列表中的url發請求。
def start_requests(self):for u in self.start_urls:yield scrapy.Request(url=u,callback=self.parse) 注意 該方法的默認是對起始的url發起get請求,想法post請求,則需要重寫這個方法。
需求 對百度翻譯進行post請求的獲取
import scrapy
#發送post請求 這里的post請求沒有實際的應用 直接使用request來發送post請求比較簡單
#需求 通過百度翻譯中的搜索 也就是post請求 這里搜索的內容是dog
class PostSpider(scrapy.Spider):name = 'post'# allowed_domains = ['www.xxx.com']start_urls = ['https://fanyi.baidu.com/sug']#這是父類中的方法 start_urls被封裝到這里面來def start_requests(self):#注意 這是原先的# for url in self.start_urls:# #直接發送get請求# # yield scrapy.Request(url=url,callback=self.parse)data ={'kw':'dog'}#重寫父類的方法start_urlsfor url in self.start_urls:#直接發送get請求yield scrapy.FormRequest(url=url,formdata=data,callback=self.parse)def parse(self, response):#這里拿到的是一個json 而不是源碼 不需要使用response.xpathprint(response.text)
執行即可
二 五大核心組件的工作流程
(1)引擎(Scrapy Engine)
用來處理整個系統的數據流,觸發事務(框架的核心)
(2)調度器(Scheduler)
用來接收引擎發過來的請求, 壓入隊列中, 并在引擎再次請求的時候返回.由它來決定下一個要抓取的網址是什么, 同時去除重復的網址
(3)下載器(Downloader)
用于下載網頁內容, 并將網頁內容返回給蜘蛛(Scrapy下載器是建立在twisted這個高效的異步模型上的)
(4)爬蟲(Spiders)
爬蟲是主要干活的, 用于從特定的網頁中提取自己需要的信息.即所謂的實體(Item)
(5)項目管道(Pipeline)
負責處理爬蟲從網頁中抽取的實體,主要的功能是持久化實體、驗證實體的有效性、清除不需要的信息。當頁面被爬蟲解析后,將被發送到項目管道,并經過幾個特定的次序處理數據
轉載于:https://www.cnblogs.com/mlhz/p/10473284.html
總結
以上是生活随笔為你收集整理的python爬虫之Scrapy框架的post请求和核心组件的工作 流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 尚读图书速写是谁画的啊?
- 下一篇: 为什么QQ邮箱登录不了?