Scrapy框架介紹

2021-08-29 01:23:10 字數 3298 閱讀 4604

scrapy不是乙個函式功能庫,而是乙個**爬蟲框架**

什麼是爬蟲框架?

爬蟲框架是實現爬蟲功能的乙個軟體結構和功能元件集合。

爬蟲框架是乙個半成品,能夠幫助使用者實現專業網路爬蟲

引擎負責控制資料流在系統中所有元件中流動,並在相應動作發生時觸發事件。詳細內容檢視下面的資料流(data flow)部分
此元件相當於爬蟲的「大腦」,是整個爬蟲的排程中心。

scheduler(排程器)

排程器從引擎接受request並將他們入隊,以便之後引擎請求他們時提供給引擎。
初始的爬取url和後續在頁面中獲取的待爬取的url將放入排程器中,等待爬取。同時排程器會自動去除重複的url(如果特定的url不需要去重也可以通過設定實現,如post請求的url)

spider

​ spider是scrapy使用者編寫用於分析response並提取item(即獲取到的item)或額外跟進的url的類。 每個spider負責處理乙個特定(或一些)**。

item pipeline

item pipeline負責處理被spider提取出來的item。典型的處理有清理、 驗證及持久化(例如訪問到資料庫中
當頁面被爬蟲解析所需的資料存入item後,將被傳送到專案管道(pipeline),並經過幾個特定的次序處理資料,最後存入本地檔案或存入資料庫。

spider middleware(spider中介軟體)

spider中介軟體是在引擎及spider之間的特定鉤子(specific hook),處理spider的輸入(response)和輸出(items及requests)。 其提供了乙個簡便的機制,通過插入自定義**來擴充套件scrapy功能。
1.引擎開啟乙個**(open a domain),找到處理該**的spider並向該spider請求第乙個要爬取的url(s)。

2.引擎從spider中獲取到第乙個要爬取的url並在排程器(scheduler)以request排程。

3.引擎向排程器請求下乙個要爬取的url。

7.spider處理response並返回爬取到的item及(跟進的)新的request給引擎。

8.引擎將(spider返回的)爬取到的item給item pipeline,將(spider返回的)request給排程器。

它是通過命令列來建立專案的,**的編寫還是需要通過ide

scrapy startproject scrapyspider
專案建立之後檔案結構

scrapyspider/

scrapy.cfg

scrapyspider/

__init__.py

items.py

pipelines.py

settings.py

middlewares.py

spiders/

__init__.py

...

各檔案的功能描述

1.scrapy.cfg:scrapy專案的配置檔案

2.tutorial/: 該項目的python模組。之後您將在此加入**。

3.tutorial/items.py: 專案中的item檔案。

4.tutorial/pipelines.py: 專案中的pipelines檔案。

5.tutorial/settings.py: 專案的設定檔案。

6.tutorial/middlewares.py: 定義spider middlewares和********** middlewares的實現

6.tutorial/spiders/: 放置spider**的目錄

1.scrapy爬蟲的使用步驟

1.建立乙個工程和spider模板

建立專案:scrapy startproject tutorial

建立spider:cd turorial

scrapy genspider qutoes qutoes.toscrape.com

2.編寫spider

3.編寫item pipeline

4.優化配置策略

2.scrapy爬蟲的資料型別

request 類

response 類

item 類

(1)request 類

a.request物件表示乙個http請求

b.由spider生成,由**********執行

屬性或方法

說明.url

request對應的請求url位址

.method

對應的請求方法,『get』'post』等

.headers

字典型別風格的請求頭

.body

請求內容主體,字串型別

.meta

使用者新增的擴充套件資訊,在scrapy內部模組間傳遞資訊使用.copy()複製該請求

.copy()

複製該請求

(2)response 類

​ a.response物件表示乙個http響應

b.由**********生成,由spider處理

屬性或方法

說明.url

request對應的請求url位址

.status

http狀態碼,預設是200

.headers

response對應的頭部資訊

.flags

一組標記

.body

請求內容主體,字串型別

.request

產生response型別對應的request物件

.copy()

複製該響應

(3)item 類

a.item物件表示乙個從html頁面中提取的資訊內容 

b.由spider生成,由item pipeline處理

c.item類似字典型別,可以按照字典型別操作

Scrapy框架介紹

scrapy引擎 控制整個系統的資料處理流程,觸發事務處理流程,負責串聯各個模組 item pipeline 專案管道 處理由蜘蛛 spiders 從網頁中抽取的資料,主要任務是清洗 驗證 過濾 去重和儲存資料等。專案 item 它定義了爬取結果的資料結構,爬取的資料會被賦值成該物件。通過多個元件的...

scrapy框架介紹

scrapy乙個開源和協作的框架,其最初是為了頁面抓取 更確切來說,網路抓取 所設計的,使用它可以以快速 簡單 可擴充套件的方式從 中提取所需的資料。但目前scrapy的用途十分廣泛,可用於如資料探勘 監測和自動化測試等領域,也可以應用在獲取api所返回的資料 例如 amazon associate...

Scrapy爬蟲框架介紹

scrapy是乙個為了爬取 資料,提取結構性資料而編寫的應用框架。可以應用在包括資料探勘,資訊處理或儲存歷史資料等一系列的程式中。其最初是為了 頁面抓取 更確切來說,網路抓取 所設計的,也可以應用在獲取api所返回的資料 例如 amazon associates web services 或者通用的...