爬蟲框架是實現爬蟲功能的乙個軟體結構和功能元件集合。
爬蟲框架是乙個半成品,能夠幫助使用者實現專業網路爬蟲。
五個模組:
spiders(爬蟲):解析**********產生的相應(response),產生爬取項item,產生額外的爬取請求(requests)
scheduler(排程器):負責對爬取請求進行排程管理(可能同時有多個爬蟲請求)
engine(引擎):控制所有模組之間的資料流,根據條件觸發事件,負責其他四個模組之間的訊息與資料的傳送
item pipelines(管道):流水線方式處理spiders產生的爬取項;由一組操作順序組成,每個操作是乙個item pipelines型別
可能操作包括:清理、檢驗和查重爬取項中的html資料、將資料儲存到資料庫
兩個中介軟體(middlewares):(使用者可以編寫配置**)
spider middleware:enging和spiders之間,對請求和爬取項的再處理
修改、丟棄、新增請求或爬取項
********** middleware:enging和**********之間,實施engine、scheduler和**********之間進行使用者可配置的控制
修改、丟棄、新增請求或響應
首先,spiders傳送的requests通過engine傳送給scheduler(1—2—3):
spiders傳送requests,engine獲得了spiders傳送的requests訊息(爬取使用者的請求,可以理解為乙個url);
engine將requests請求**給scheduler
其次(4—5—6):
scheduler通過engine將requests傳送給**********,**********返回response訊息,通過engine傳送給spiders
最後,spiders通過engine將爬取的內容送到item pipelines以及scheduler(7—8):
spiders將解析的內容送給engine,engine將兩部分分別送給item pipelines和scheduler
item為要爬取的內容;送給scheduler的requests為需要繼續跟進的內容
總得來說,整個執行過程從向engine傳送第乙個請求開始,到獲得所有鏈結的內容,並將內容處理後放到item pipelines為止。
使用者通過spiders請求要爬取的網頁;scheduler對請求進行排程;**********通過網際網路爬取所需要的網頁,並返回給spiders;spiders進行解析,提取所需的資料,並傳送新的請求。
由於在這個框架下,使用者編寫的不是完整的所有**,而僅僅是對spiders和item pipelines 已有的**框架進行編寫,所以將這種**編寫方式叫做配置。相當於使用者在scrapy框架下進行簡單的配置就可以實現相應的爬蟲功能。
使用者需要關心的就是爬取的內容,即spiders的編寫;獲得item pipelines後的資料處理。
相同點:
兩者都可以進行頁面請求和爬取,python爬蟲的兩個重要技術路線。
兩者可用性都好,文件豐富,入門簡單。
兩者都沒有處理js、提交表單、應對驗證碼等功能(可擴充套件)。
不同點:
1.scrapy是為持續執行設計的專業爬蟲框架,提供操作的命令列。
2.常用命令介紹
常用的三個命令:startproject、genspider和crawl
Scrapy爬蟲框架介紹
scrapy是乙個為了爬取 資料,提取結構性資料而編寫的應用框架。可以應用在包括資料探勘,資訊處理或儲存歷史資料等一系列的程式中。其最初是為了 頁面抓取 更確切來說,網路抓取 所設計的,也可以應用在獲取api所返回的資料 例如 amazon associates web services 或者通用的...
python爬蟲框架scrapy介紹
scrapy,python開發的乙個快速,高層次的螢幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的資料。scrapy用途廣泛,可以用於資料探勘 監測和 自動化測試。scrapy吸引人的地方在於它是乙個框架,任何人都可以根據需求方便的修改。它也提供了多種型別爬蟲的基類,如basesp...
爬蟲之Scrapy框架介紹
scrapy是用純python實現乙個為了爬取 資料 提取結構性資料而編寫的應用框架,用途非常廣泛。框架的力量,使用者只需要定製開發幾個模組就可以輕鬆的實現乙個爬蟲,用來抓取網頁內容以及各種,非常之方便。scrapy engine 引擎 用來處理整個系統的資料流處理,觸發事務 框架核心 schedu...