目錄
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)
輸出查看結果: