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...