Scrapy 爬蟲實例教程(一)---簡介及資源列表


Scrapy(官網 http://scrapy.org/)是一款功能強大的,用戶可定制的網絡爬蟲軟件包。其官方描述稱:"

Scrapy is a fast high-level screen scraping and web crawling framework, used to crawl websites and extract structured data from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing

"

Scrapy在github中有源碼托管https://github.com/scrapy/scrapy,其安裝可以參考github中提供的安裝方法(大百度中也提供了很多安裝方法的描述)。另外網站1和網站2提供了scrapy的使用方法和簡單實例(小編后續隨筆也會簡單寫一個scrapy實例,供大家參考)。

Scrapy的爬蟲原理:

            ”盜用“的scrapy 官網中的scrapy核心框架圖

   Scrapy Engine是scrapy軟件的核心,他負責各個組件的協調處理

   Scheduler是調度器,負責爬去隊列的管理,如Request的入隊和出隊管理

   Item Pipeline 是抓取內容的核心組件,用戶想要獲取的內容可以寫入item 然后再pipeline中設計數據的流向比如寫入文件或是持久化到數據庫中

   Downloader 則是scrapy與web site接觸的端口,負責根據Request 請求網頁然后以response的形式返回用戶處理接口(默認是 spider的parse函數)

   Spider則是用戶定制興趣內容的模塊,在scrapy的spiders中內置了BaseSpider,CSVFeedSpider,CrawlerSpider,用戶可以根據情況選擇合適spider繼承與開發

   Spider Middlewares則是Spider與Scrapy Engine 的中間層,用戶可以個性化定義Spider向Engine傳輸過程

Scrpay的運行過程:

    (1)Engine從Spider中獲取一個需要爬取的URL(從spider中start_url獲取),並以Request的形式在Scheduler中列隊。

    (2)Scheduler根據列隊情況,把Request發送給Downloader,Downloader根據Request請求網頁,並獲取網頁內容。

    (3)網頁內容以Response的形式經過Engine發送給Spider,並根據用戶解析生成Item,發送給Pipeline。

    (4)Pipeline根據獲得的item和settings中的設置,處理item(process_item)把數據輸出到文件或是數據庫中。

  上述過程反復進行,直到沒有新的請求為止(此過程是一個異步處理過程)。

個人整理的Scrapy資源列表(望笑納):

  (1)scrapy中文教程

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

 

     (2)一個不錯的scrapy學習博客

            http://blog.csdn.net/column/details/younghz-scrapy.html

     (3)scrapy 官方wiki

        https://github.com/scrapy/scrapy/wiki

     (4)scrapy實例

            https://github.com/jackgitgz/CnblogsSpider

           http://nkcoder.github.io/2015/12/10/scrapy-crawl-simple-in-action/?utm_source=tuicool&utm_medium=referral


免責聲明!

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



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