Python-Scrapy: Как получить URL-адрес (не по следующим ссылкам) внутри паука?
-
09-10-2019 - |
Вопрос
Как я могу иметь внутри моего паука что-то, что принесет какой-нибудь URL-адрес, чтобы извлечь что-то со страницы через HTMLXPAPTEVELECTOR? Но 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'
Решение
Вам нужно будет построить объект Scrapy.http.htmlResponse с body = urllib2.urlopen (req) .read () - Но почему именно вам нужно использовать Urllib2 вместо того, чтобы вернуть запрос с обратным вызовом?
Другие советы
SCRAPY не является явным, чтобы показать, как сделать Unittest, я не рекомендую использовать SCRAPY для ползания данных, если вы хотите сделать неизменной для каждого паука.
Не связан с StackOverflow