0

我怎样才能在我的蜘蛛内部获取一些 URL 以通过 HtmlXPathSelector 从页面中提取某些内容?但是 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'
4

2 回答 2

1

您将需要使用 body=urllib2.urlopen(req).read() 构造一个 scrapy.http.HtmlResponse 对象 - 但是为什么您需要使用 urllib2 而不是通过回调返回请求?

于 2011-01-12T03:04:21.947 回答
-1

scrapy 没有明确展示如何进行单元测试,如果你想为每个蜘蛛进行单元测试,我不建议使用 scrapy 来抓取数据。

于 2015-06-16T06:41:29.030 回答