Scrapy爬蟲框架介紹

2021-08-09 22:27:51 字數 2417 閱讀 8201

scrapy是乙個為了爬取**資料,提取結構性資料而編寫的應用框架。 可以應用在包括資料探勘,資訊處理或儲存歷史資料等一系列的程式中。

其最初是為了 頁面抓取 (更確切來說, 網路抓取 )所設計的, 也可以應用在獲取api所返回的資料(例如 amazon associates web services ) 或者通用的網路爬蟲。

引擎負責控制資料流在系統中所有元件中流動,並在相應動作發生時觸發事件。 詳細內容檢視下面的資料流(data flow)部分。

此元件相當於爬蟲的「大腦」,是整個爬蟲的排程中心。

排程器從引擎接受request並將他們入隊,以便之後引擎請求他們時提供給引擎。

初始的爬取url和後續在頁面中獲取的待爬取的url將放入排程器中,等待爬取。同時排程器會自動去除重複的url(如果特定的url不需要去重也可以通過設定實現,如post請求的url)

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

item pipeline負責處理被spider提取出來的item。典型的處理有清理、 驗證及持久化(例如訪問到資料庫中)。

當頁面被爬蟲解析所需的資料存入item後,將被傳送到專案管道(pipeline),並經過幾個特定的次序處理資料,最後存入本地檔案或存入資料庫。

spider中介軟體是在引擎及spider之間的特定鉤子(specific hook),處理spider的輸入(response)和輸出(items及requests)。 其提供了乙個簡便的機制,通過插入自定義**來擴充套件scrapy功能。

引擎開啟乙個**(open a domain),找到處理該**的spider並向該spider請求第乙個要爬取的url(s)。

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

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

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

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

在開始爬取之前,首先要建立乙個新的scrapy專案。這裡以爬取我的部落格為例,進入你打算儲存**的目錄中,執行下列命令:

scrapy startproject scrapyspider

該命令將會建立包含下列內容的scrapyspider目錄:

scrapyspider/

scrapy.cfg

scrapyspider/

__init__.py

items.py

pipelines.py

settings.py

spiders/

__init__.py

...

這些檔案分別是:

spider是使用者編寫用於從單個**(或者一些**)爬取資料的類。

為了建立乙個spider,您必須繼承 scrapy.spider 類, 且定義以下三個屬性:

以下為我們的第乙個spider**,儲存在scrapyspider/spiders目錄下的blog_spider.py檔案中:

from

scrapy.spiders

import

spider

class

blogspider

(spider

):name

='woodenrobot'

start_urls=[

'']def

parse

(self

,response

):titles

=response

.xpath

('//a[@class="post-title-link"]/text()').

extract

()for

title

intitles

:print

title

.strip

()

開啟終端進入專案所在路徑(即:scrapyspider路徑下)執行下列命令:

scrapy crawl woodenrobot

啟動爬蟲後就可以看到列印出來當前頁所有文章標題了

Scrapy爬蟲框架介紹

爬蟲框架是實現爬蟲功能的乙個軟體結構和功能元件集合。爬蟲框架是乙個半成品,能夠幫助使用者實現專業網路爬蟲。五個模組 spiders 爬蟲 解析 產生的相應 response 產生爬取項item,產生額外的爬取請求 requests scheduler 排程器 負責對爬取請求進行排程管理 可能同時有多...

python爬蟲框架scrapy介紹

scrapy,python開發的乙個快速,高層次的螢幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的資料。scrapy用途廣泛,可以用於資料探勘 監測和 自動化測試。scrapy吸引人的地方在於它是乙個框架,任何人都可以根據需求方便的修改。它也提供了多種型別爬蟲的基類,如basesp...

爬蟲之Scrapy框架介紹

scrapy是用純python實現乙個為了爬取 資料 提取結構性資料而編寫的應用框架,用途非常廣泛。框架的力量,使用者只需要定製開發幾個模組就可以輕鬆的實現乙個爬蟲,用來抓取網頁內容以及各種,非常之方便。scrapy engine 引擎 用來處理整個系統的資料流處理,觸發事務 框架核心 schedu...