Python-Scrapy: Как получить URL-адрес (не по следующим ссылкам) внутри паука?

StackOverflow https://stackoverflow.com/questions/4640804

  •  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 для ползания данных, если вы хотите сделать неизменной для каждого паука.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top