scrapy爬蟲框架之理解篇(個人理解)


 

提問: 為什么使用scrapy框架來寫爬蟲 ?

           在python爬蟲中:requests  +  selenium  可以解決目前90%的爬蟲需求,難道scrapy 是解決剩下的10%的嗎?顯然不是。scrapy框架是為了讓我們的爬蟲更強大、更高效。接下來我們一起學習一下它吧。

1.scrapy 的基礎概念:

  scrapy 是一個為了爬取網站數據,提取結構性數據而編寫的應用框架,我們只需要實現少量代碼,就能夠快速的抓取到數據內容。Scrapy 使用了 Twisted['twɪstɪd](其主要對手是Tornado)異步網絡框架來處理網絡通訊,可以加快我們的下載速度,不用自己去實現異步框架,並且包含了各種中間件接口,可以靈活的完成各種需求。

http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html 

2. scrapy 的工作流程:

    之前我們所寫爬蟲的流程:


  

 

 那么 scrapy是如何幫助我們抓取數據的呢?

scrapy框架的工作流程:1.首先Spiders(爬蟲)將需要發送請求的url(requests)經ScrapyEngine(引擎)交給Scheduler(調度器)。

          2.Scheduler(排序,入隊)處理后,經ScrapyEngine,DownloaderMiddlewares(可選,主要有User_Agent, Proxy代理)交給Downloader。

          3.Downloader向互聯網發送請求,並接收下載響應(response)。將響應(response)經ScrapyEngine,SpiderMiddlewares(可選)交給Spiders。

          4.Spiders處理response,提取數據並將數據經ScrapyEngine交給ItemPipeline保存(可以是本地,可以是數據庫)。

                                       提取url重新經ScrapyEngine交給Scheduler進行下一個循環。直到無Url請求程序停止結束。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM