python-scrapy: cómo a buscar una dirección URL (no a través de los siguientes enlaces) dentro de una araña?
-
09-10-2019 - |
Pregunta
¿Cómo puedo tener dentro de mi araña algo que va a traer un poco de extracto de URL para algo de una página a través de HtmlXPathSelector? Sin embargo, la URL es algo que quiero suministrar como una cadena en el código, no un enlace a seguir.
He intentado algo como esto:
req = urllib2.Request('http://www.example.com/' + some_string + '/')
req.add_header('User-Agent', 'Mozilla/5.0')
response = urllib2.urlopen(req)
hxs = HtmlXPathSelector(response)
pero en este momento se inicia una excepción con:
[Failure instance: Traceback: <type 'exceptions.AttributeError'>: addinfourl instance has no attribute 'encoding'
Solución
tendrá que construir un objeto scrapy.http.HtmlResponse con el cuerpo = urllib2.urlopen (req) .read (?) - pero ¿por qué es exactamente lo que necesita utilizar urllib2 en lugar de devolver la solicitud de devolución de llamada con un
Otros consejos
scrapy no es explícita para mostrar cómo hacer unittest, yo no recomiendo el uso scrapy a los datos de rastreo si desea hacer unittest para cada araña.