Python|什麼是Scrapy

歡迎點擊「算法與編程之美」↑關注我們!

本文首發於微信公衆號:"算法與編程之美",歡迎關注,及時瞭解更多此係列文章。

歡迎加入團隊圈子!與作者面對面!直接點擊!

一、Scrapy框架簡介

Scrapy是用純Python實現一個爲了爬取網站數據,提取結構性數據而編寫的應用框架,用途非常廣泛。利用框架,用戶只需要定製開發幾個模塊就可以輕鬆的實現一個爬蟲,用來抓取網頁內容以及各種圖片,非常的方便。它使用Twisted這個異步網絡庫來處理網絡通訊,架構清晰,並且包含了各種中間件接口,可以靈活的完成各種需求。ScrapyPython世界裏面最強大的爬蟲框架,它比BeautifulSoup更加完善,BeautifulSoup可以說是輪子,而Scrapy則是車子,不需要關注太多的細節。

二、Scrapy原理

1.ScrapyEngine(引擎):負責SpiderItemPipelineDownloaderScheduler中間的通訊,信號數據傳遞等。

2.Scheduler(調度器):它負責接受引擎發送過來的request請求,並按照定的方式進行整理排列,入隊,當引擎需要時,交還給引擎。

3.Downloader(下載器):負責下載ScrapyEngine發送的所有requests請求,並將其獲取到的responses交還給ScrapyEngine,由引擎交給Spider來處理。

4.Spider(爬蟲):它負責處理所有Responses,從中分析提取數據,獲取ltem字段需要的數據,並將需要跟進的URL提交給引擎,再次進入Scheduler

5.ItemPipeline(管道):它負責處理Spider中獲取到的ltem,並進行進行後期處理,詳細分析,過濾,存儲等的地方。

6.DownloaderMiddlewares(下載中間件):它是一個可以自定義擴展下載功能的組件。

7.SpiderMiddlewares(Spider中間件):它是一個可以自定擴展和操作引擎和Spider中間通信的功能組件比如進入SpiderResponses,和從Spider出去的Requests

三、創建Scrapy項目

新建項目命令:scrapy startproject xxx

在開始爬取之前,必須創建一個新的Scrapy項目。進入自定義的項目目錄中,運行下列命令:

scrapy startproject xxx

其中,xxx爲項目名稱,可以看到將會創建一個xxx文件夾,目錄結構大致如下:

3.1

四、創建爬蟲

創建爬蟲的命令:scrapy genspider 爬蟲名字網站域名

應當注意的是爬蟲名字不要和項目名字一-樣,網站域名是允許爬蟲採集的域名如,baidu. comzhihu. com。創建後python文件如下:

4.1

 

五、總結

Scrapy框架相當於一輛造好的車子,只要我們會開,我們就可以利用這輛車子去到任意想去的地方。通常我們使用的request的方法就相當於在出發前再去造一輛車子,這是相當麻煩的。學好Scrapy,對於網上80%的網站我們都可以進行爬取。

END

編  輯   |   王楠嵐

責  編   |   王   曦

 where2go 團隊


   

微信號:算法與編程之美          

長按識別二維碼關注我們!

溫馨提示:點擊頁面右下角“寫留言”發表評論,期待您的參與!期待您的轉發!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章