Scrapy shell 命令行模式 使用教程

Scrapy終端(Scrapy shell)文檔 在這裏

Scrapy shell一句話介紹

Scrapy shell也稱"Scrapy終端",是一個交互終端,“輸入即響應”模式,使我們可以在未啓動spider爬蟲的情況下嘗試及調試代碼。

更爲方便的是,我們也可以用來直接測試XPath或CSS表達式,而不用import導入相應模塊。通過查看其運行的結果,方便了我們分析目標網頁,並從中測試我們的表達式是否提取到了數據

總之,Scrapy shell可以用來調試測試爬蟲

Scrapy內置的Selector選擇器

在Scrapy中使用xpath或是CSS等,之所以不用再導入第三方包,是因爲在Scrapy中已內置了相應的Selector選擇器
Selector有四個基本的方法。

(1)xpath( )
我們通過書寫xpath表達式,可使程序返回該表達式所對應的所有節點的selector list選擇器列表,從而篩選我們想要定位的元素。

(2)extract( )
序列化節點爲Unicode字符串,並返回list列表。

(3)css( )
根據css表達式,返回該表達式所對應的所有節點的selector list選擇器列表,語法和 BeautifulSoup4相同。

(4)re( )
根據書寫的正則表達式,對數據進行提取,返回Unicode字符串list列表。

Scrapy shell 實戰演練

以爬取本博客目錄爲例,來演練一下Scrapy shell的用法。

(1)打開CMD命令窗口,直接輸入命令:scrapy shell 目標網址

(2)等待系統進入交互模式後,我們使用命令:response (查看目標狀態響應狀態)

(3)可以看到,響應狀態碼爲200表示響應成功。此時我們藉助谷歌瀏覽器提取目標數據的xpath。

(4)經過對網頁分析後,書寫xpath表達式。在scrapy shell中輸入命令:response.xpath(’ 你的XPATH /text()’)

(5)可以看到此時已經可以提取到數據了,我們的xpath表達式測試成功。
在這裏插入圖片描述

但我們發現此時提取到的仍是xpath對象,這時我們就可以使用extract()方法來將我們的數據轉化爲列表。
輸入命令:response.xpath(’ 你的XPATH /text()’).extract()
在這裏插入圖片描述

(6)如果我們只想要提取第一篇文章名字,和python中對列表的操作是一樣的,我們只需要加個“0下標”即可。
輸入命令:response.xpath(’ 你的XPATH /text()’).extract()[1]
在這裏插入圖片描述
(7)想要退出scrapy shell 去正式編寫爬蟲時,輸入命令:exit() 即可退出scrapy shell 終端模式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章