W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
有時(shí),您希望檢查在您的蜘蛛的某個(gè)點(diǎn)上正在處理的響應(yīng),如果只是檢查您期望的響應(yīng)是否到達(dá)那里的話。
這可以通過(guò)使用 ?scrapy.shell.inspect_response
? 功能。
下面是一個(gè)例子,說(shuō)明如何從您的蜘蛛中命名它:
import scrapy
class MySpider(scrapy.Spider):
name = "myspider"
start_urls = [
"http://example.com",
"http://example.org",
"http://example.net",
]
def parse(self, response):
# We want to inspect one specific response.
if ".org" in response.url:
from scrapy.shell import inspect_response
inspect_response(response, self)
# Rest of parsing code.
當(dāng)你運(yùn)行蜘蛛時(shí),你會(huì)得到類似的東西:
2014-01-23 17:48:31-0400 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://example.com> (referer: None)
2014-01-23 17:48:31-0400 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://example.org> (referer: None)
[s] Available Scrapy objects:
[s] crawler <scrapy.crawler.Crawler object at 0x1e16b50>
...
>>> response.url
'http://example.org'
然后,可以檢查提取代碼是否正常工作:
>>> response.xpath('//h1[@class="fn"]')
[]
不,它不是。所以您可以在web瀏覽器中打開(kāi)響應(yīng),看看它是否是您期望的響應(yīng):
>>> view(response)
True
最后,單擊ctrl-d(或在Windows中單擊ctrl-z)退出shell并繼續(xù)爬網(wǎng):
>>> ^D
2014-01-23 17:50:03-0400 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://example.net> (referer: None)
...
請(qǐng)注意,您不能使用 ?fetch
? 這里的快捷方式,因?yàn)閳?bào)廢的引擎被外殼擋住了。然而,當(dāng)你離開(kāi)外殼后,蜘蛛會(huì)繼續(xù)在它停止的地方爬行,如上圖所示。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: