2011-01-09 54 views
0

我怎麼能有我的蜘蛛內在的東西,將獲取某些URL通過HtmlXPathSelector提取從頁面的東西嗎?但是URL是我想在代碼中以字符串形式提供的內容,而不是要遵循的鏈接。python-scrapy:如何獲取蜘蛛內的URL(不通過以下鏈接)?

我想是這樣的:

req = urllib2.Request('http://www.example.com/' + some_string + '/') 
req.add_header('User-Agent', 'Mozilla/5.0') 
response = urllib2.urlopen(req) 
hxs = HtmlXPathSelector(response) 

,但在這一刻它拋出一個異常有:

[Failure instance: Traceback: <type 'exceptions.AttributeError'>: addinfourl instance has no attribute 'encoding' 

回答

1

您需要構建一個scrapy.http.HtmlResponse對象與身體= urllib2.urlopen(req).read() - 但爲什麼你需要使用urllib2而不是用回調函數返回請求?

+0

我不知道怎麼做出這可不是我現在刮的頁面上的任何鏈接的URL是「有回調的要求。」我只想在我的Scrapy腳本中查詢我在字符串中提供的URL,而不是跟隨任何鏈接。 – miernik 2011-01-12 08:58:51

0

scrapy不明確說明如何做單元測試,我不推薦使用scrapy如果你想要做單元測試每個蜘蛛抓取數據。