Scrapy爬蟲(九):scrapy的調試技巧


Scrapy爬蟲(九):scrapy的調試技巧

 

 

本章將介紹scrapy的一些調試技巧。

scrapy的調試

在開發爬蟲時調試工作是必要的且重要的,無論是開發前的准備工作,比如測試該網站在scrapy爬蟲中是否可用;或者是下載時的偽裝工作,比如為爬蟲設置請求參數模擬瀏覽器;亦或是在解析下載下來的數據,比如如何使用xpath解析等等,不可能每次都運行程序爬蟲來達到調試的目的,因為這樣效率太低了。
在開發時我所用到的方法通常是使用瀏覽器調試及scrapy命令工具調試。

瀏覽器調試

瀏覽器調試通常可以通過瀏覽器開發工具來獲取請求參數,如顯示源碼、局部檢查、firebug等。
1、顯示源碼
通常我們使用瀏覽器右鍵–>顯示網頁源碼 功能,可以獲取該url頁的網頁源碼。

2、代碼檢查

代碼檢查可以精確查看當前選中元素的html標簽

3、查看請求參數
打開代碼檢查后再network標簽下,查看請求頭Request Headers
chrome瀏覽器

火狐瀏覽器自帶工具

firebug工具

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip, deflate, sdch Accept-Language:zh-CN,zh;q=0.8 Cookie:BAIDUID=B547D7C51C70A74212F12E2EC314B7B5:FG=1; BIDUPSID=B547D7C51C70A74212F12E2EC314B7B5; PSTM=1470221362; BDUSS=kRMZmIyUzNHdDhRVFdPeTRiRGQxek5UeDdPRTlBYk0wMk9SbUtPeTRnODByUzVZSVFBQUFBJCQAAAAAAAAAAAEAAAAWX1g4y87WvsTPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQgB1g0IAdYY; Hm_lvt_e9e114d958ea263de46e080563e254c4=1477032127,1477147817; MCITY=-52454%3A; LOCALGX=%u6210%u90FD%7C%36%36%39%33%7C%u6210%u90FD%7C%36%36%39%33; PSINO=3; H_PS_PSSID=1420_21093_21805_21553_21672_21678 DNT:1 Host:news.baidu.com Proxy-Connection:keep-alive Referer:http://news.baidu.com/ Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36

查看user-agent,chrome中也可以通過chrome://version/

4、xpath調試

現在的話scrapy主要使用xpath、css、正則表達式,但是還是以xpath為主,關於這部分的知識,可以google下,這里我不在重復造輪子。

關於xpath的使用 點擊
chrome瀏覽器
檢查代碼后可以在標簽上右鍵–>Copy–>Copy XPath

結果為

//*[@id="content_right"]
  • 1

火狐瀏覽器 可以使用firebug插件

scrapy命令調試

scrapy自帶調試命令

localhost:~ yancey$ scrapy
Scrapy 1.2.0 - no active project Usage: scrapy <command> [options] [args] Available commands: bench Run quick benchmark test commands fetch Fetch a URL using the Scrapy downloader genspider Generate new spider using pre-defined templates runspider Run a self-contained spider (without creating a project) settings Get settings values shell Interactive scraping console startproject Create new project version Print Scrapy version view Open URL in browser, as seen by Scrapy [ more ] More commands available when run from project directory Use "scrapy <command> -h" to see more info about a command
scrapy startproject project 創建project項目
scrapy crawl project 進入project目錄運行project爬蟲
scrapy version 查看scrapy版本
scrapy genspider testspider baidu.com 創建一個spider name為testspider的爬蟲,start_urls為http://www.baidu.com/的爬蟲
scrapy runspider testspider.py 在未創建項目的情況下,運行一個編寫在Python文件中的testspider。
scrapy fetch --nolog http://www.baidu.com/ 下載baidu並標准輸出
scrapy view http://www.baidu.com/ 下載百度頁並在瀏覽器打開

當然本處調試時,scrapy shell用的比較多
以百度首頁為例 https://www.baidu.com/

scrapy shell https://www.baidu.com/
  • 1

  • 操作response,查看url,使用response.url,標准輸出

查看百度首頁標題,xpath調試
先檢查代碼獲取xpath,為/html/head/title

使用命令response.xpath(r'/html/head/title').extract()

優化response.xpath(r'/html/head/title/text()').extract()
結果為數組 ['百度一下,你就知道']
可以這樣得出文本response.xpath(r'/html/head/title/text()').extract()[0]
或者"".join(response.xpath(r'/html/head/title/text()').extract())

關於其他命令,讀者朋友可以自己搗鼓下,本處不在多講了,就我而言調試命令主要用於解析xpath的調試。

集成開發環境(IDE)調試

關於集成開發環境的調試大家應該都會使用,本處就不在贅述了。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM