python-scrapy: как получить URL (не по следующим ссылкам) внутри паука? - PullRequest
0 голосов
/ 09 января 2011

Как я могу иметь внутри своего паука что-то, что будет извлекать какой-то 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 ]

1 голос
/ 12 января 2011

Вам нужно будет создать объект scrapy.http.HtmlResponse с body = urllib2.urlopen (req) .read () - но почему именно вам нужно использовать urllib2 вместо возврата запроса с обратным вызовом?

0 голосов
/ 16 июня 2015

scrapy не является явным, чтобы показать, как выполнить юнит-тест, я не рекомендую использовать scrapy для сканирования данных, если вы хотите сделать юнит-тест для каждого паука.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...