python-scrapy:如何在蜘蛛内获取URL(不是通过以下链接)?

时间:2011-01-09 18:05:08

标签: web-scraping scrapy

我怎样才能在我的蜘蛛内部获取某些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'

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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