(八) Shell

Scrapy終端是一個交互終端,供您在未啓動spider的情況下嘗試及調試您的爬取代碼。 其本意是用來測試提取數據的代碼,不過您可以將其作爲正常的Python終端,在上面測試任何的Python代碼。

該終端是用來測試XPath或CSS表達式,查看他們的工作方式及從爬取的網頁中提取的數據。 在編寫您的spider時,該終端提供了交互性測試您的表達式代碼的功能,免去了每次修改後運行spider的麻煩。

一旦熟悉了Scrapy終端後,您會發現其在開發和調試spider時發揮的巨大作用。

啓動終端

您可以使用 shell 來啓動Scrapy終端:

scrapy shell <url>

<url> 是您要爬取的網頁的地址。

使用終端

Scrapy終端僅僅是一個普通的Python終端(或 IPython )。其提供了一些額外的快捷方式。

可用的快捷命令(shortcut)

  • shelp() - 打印可用對象及快捷命令的幫助列表
  • fetch(request_or_url) - 根據給定的請求(request)或URL獲取一個新的response,並更新相關的對象
  • view(response) - 在本機的瀏覽器打開給定的response。 其會在response的body中添加一個 <base> tag ,使得外部鏈接(例如圖片及css)能正確顯示。 注意,該操作會在本地創建一個臨時文件,且該文件不會被自動刪除。

可用的Scrapy對象

Scrapy終端根據下載的頁面會自動創建一些方便使用的對象,例如 Response 對象及 Selector 對象(對HTML及XML內容)。

這些對象有:

  • crawler - 當前 Crawler 對象.
  • spider - 處理URL的spider。 對當前URL沒有處理的Spider時則爲一個 Spider 對象。
  • request - 最近獲取到的頁面的 Request 對象。 您可以使用 replace() 修改該request。或者 使用 fetch 快捷方式來獲取新的request。
  • response - 包含最近獲取到的頁面的 Response 對象。
  • sel - 根據最近獲取到的response構建的 Selector 對象。
  • settings - 當前的 Scrapy settings
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章