Day80 scrapy框架介紹

2021-09-23 13:18:55 字數 2982 閱讀 5870

scrapy是python開發的乙個快速、高層次的螢幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化資料的應用程式框架。scrapy用途廣泛,可以用於資料探勘、監測和自動化測試;

scrapy吸引人的地方在於它是乙個框架,任何人都可以根據需求方便的修改。它也提供了多種型別爬蟲的基類,如basespider、sitemap爬蟲等;

爬蟲:是使用者最關心的部份,使用者定製自己的爬蟲,用於從特定的網頁中提取自己需要的資訊,也可以從中提取出鏈結,讓scrapy繼續抓取下乙個頁面;

實體管道:用於處理爬蟲提取的實體,要的功能是持久化實體、驗證實體的有效性、清除不需要的資訊;

第二步:建立爬蟲專案,建立儲存 scrapy 資料夾scrapy_python,然後在命令列工具中cd進入這個專案路徑,用scrapy startproject 名稱命令新建專案;

這樣我們就成功的建立了乙個scrapy專案,我們在pycharm中看看

第三步:可以在剛剛建立的專案的spiders資料夾中建立乙個蜘蛛檔案,用於爬取網頁資料的,我們試著爬取一下csdn**,那麼新建蜘蛛的命令列是:scrapy genspider csdn www.csdn.net,其中csdn是你建立的蜘蛛的檔名,而www.csdn.net表示爬取的目標**的網域名稱,你想爬取哪個**就使用哪個**的網域名稱。

第四步:如果要啟動我們建立的蜘蛛檔案,我們可以使用命令列:scrapy crawl csdn,這裡的csdn是蜘蛛檔案中name的對應值;

第五步:想要測試爬去資料是否成功,我們可以在專案的模板中建立乙個測試檔案,如:start_spider.py,然後通過debug來進行專案除錯,可以輸出我們想要爬取的網頁資料;

from scrapy.cmdline import execute

execute(["scrapy", "crawl", "csdn",])

表示式書寫方式

表示式意義

*選擇html頁面中任意的節點

/從根節點擊取

//從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置

.選取當前節點

…選取當前節點的父節點

/bookstore/book[1]

選取屬於 bookstore 子元素的第乙個 book 元素

/bookstore/book[last()]

選取屬於 bookstore 子元素的最後乙個 book 元素

/bookstore/book[last()-1]

選取屬於 bookstore 子元素的倒數第二個 book 元素

//title[@lang]

選取所有擁有名為 lang 的屬性的 title 元素

//title[@lang=『eng』]

選取所有 title 元素,且這些元素擁有值為 eng 的 lang 屬性

/bookstore/book[price>35.00]

選取 bookstore 元素的所有 book 元素,且其中的 price 元素的值須大於 35.00

/bookstore/book[price>35.00]/title

選取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值須大於 35.00

//*選取文件中的所有元素

//title[@*]

選取所有帶有屬性的 title 元素

//book/title , //book/price

選取 book 元素的所有 title 和 price 元素

//title , //price

選取文件中的所有 title 和 price 元素

child::book

選取所有屬於當前節點的子元素的 book 節點

child::text()

選取當前節點的所有文字子節點

/bookstore/book/title

選取所有 title 節點

/bookstore/book/price/text()

選取 price 節點中的所有文字

//*任意元素

我們來通過xpath選擇器爬取**中我們想要爬取的資訊,如下圖我們來爬去今日推薦中的標題

# 選擇所有class="company_name"的h3元素下的a元素的文字

result = response.xpath('//h3[@class="company_name"]/a/text()').extract()

# 將得到的文字列表迴圈

for i in result:

print(i)

我們來看一下輸出列印,看看是不是我們想要的結果

參考:

Scrapy框架介紹

scrapy不是乙個函式功能庫,而是乙個 爬蟲框架 什麼是爬蟲框架?爬蟲框架是實現爬蟲功能的乙個軟體結構和功能元件集合。爬蟲框架是乙個半成品,能夠幫助使用者實現專業網路爬蟲 引擎負責控制資料流在系統中所有元件中流動,並在相應動作發生時觸發事件。詳細內容檢視下面的資料流 data flow 部分此元件...

Scrapy框架介紹

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

scrapy框架介紹

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