Python-- scrapy-shell學習筆記
阿新 • • 發佈:2018-11-02
目錄
scrapy-shell
官方文件:https://scrapy-chs.readthedocs.io/zh_CN/latest/topics/shell.html
Scrapy終端是一個互動終端,我們可以在未啟動spider的情況下嘗試及除錯程式碼,也可以用來測試XPath或CSS表示式,檢視他們的工作方式,方便我們爬取的網頁中提取的資料。
如果安裝了 IPython ,Scrapy終端將使用 IPython (替代標準Python終端)。 IPython 終端與其他相比更為強大,提供智慧的自動補全,高亮輸出,及其他特性。(推薦安裝IPython)
1.啟動
- Linux: ctr+T,開啟終端,然後輸入scrapy shell "url:xxxx"
- windows: scrapy shell "url:xxx"
- 啟動後自動下載指定url的網頁
- 下載完成後,url的內容儲存在response的變數中,如果需要,我們需要呼叫response
Scrapy Shell根據下載的頁面會自動建立一些方便使用的物件,例如 Response 物件,以及 Selector 物件 (對HTML及XML內容)。
- 當shell載入後,將得到一個包含response資料的本地 response 變數,輸入
response.body
將輸出response的包體,輸出response.headers
可以看到response的包頭。- 輸入
response.selector
時, 將獲取到一個response 初始化的類 Selector 的物件,此時可以通過使用 response.selector.xpath()
或response.selector.css()
來對 response 進行查詢。- Scrapy也提供了一些快捷方式, 例如
response.xpath()
或response.css()
同樣可以生效(如之前的案例)。
2.response
- 爬取到的內容儲存在response中給
- response.body是網頁的程式碼
- resposne.headers是返回的http的頭資訊
- response.xpath()允許使用xpath語法選擇內容
- response.css()允許使用css語法選區內容
3.selector
Scrapy Selectors 內建 XPath 和 CSS Selector 表示式機制
Selector有四個基本的方法,最常用的還是xpath:
- xpath(): 傳入xpath表示式,返回該表示式所對應的所有節點的selector list列表
- extract(): 序列化該節點為Unicode字串並返回list
- css(): 傳入CSS表示式,返回該表示式所對應的所有節點的selector list列表,語法同 BeautifulSoup4
- re(): 根據傳入的正則表示式對資料進行提取,返回Unicode字串list列表
selector :
- 選擇器,允許使用者使用選擇器來選擇自己想要的內容
- response.selector.xpath: response.xpath是selector.xpath的快捷方式
- response.selector.css: response.css是他的快捷方式
- selector.extract:把節點的內容用unicode形式返回
- selector.re:允許使用者通過正則選區內容
4.練習 (自己做的小練習,獲取招聘網站的資訊)
1.首先進入獵聘網,搜尋Python,按F12出現如下介面
2.查詢崗位的連線所在位置
3.啟動shell
出現如下資訊表示成功:
4.根據連線所在位置進行查詢(用到xpath的知識,xpath教程http://www.w3schools.com/XPath/default.asp)
輸出檢視結果: