2011-01-09 50 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如果你想要做单元测试每个蜘蛛抓取数据。