urljoin follow example python scrapy

python - follow - raspando el archivo con html guardado en el sistema local



scrapy python documentation (3)

Por ejemplo, tenía un sitio "www.example.com" De hecho, quiero guardar el html de este sitio guardando en el sistema local. entonces para probar guardé esa página en mi escritorio como example.html

Ahora había escrito el código araña para esto como a continuación

class ExampleSpider(BaseSpider): name = "example" start_urls = ["example.html"] def parse(self, response): print response hxs = HtmlXPathSelector(response)

Pero cuando ejecuto el código anterior, recibo este error como se muestra a continuación

ValueError: Missing scheme in request url: example.html

Finalmente, mi intención es eliminar el archivo example.html que consiste en guardar el código html de www.example.com en mi sistema local

¿Puede alguien sugerirme cómo asignar ese archivo example.html en start_urls

Gracias por adelantado


Puedes usar el HTTPCacheMiddleware, que te dará la posibilidad de ejecutar una araña desde el caché. El documento para la configuración de HTTPCacheMiddleware se encuentra aquí .

Básicamente, agregar las siguientes configuraciones a su settings.py lo hará funcionar:

HTTPCACHE_ENABLED = True HTTPCACHE_EXPIRATION_SECS = 0 # Set to 0 to never expire

Sin embargo, esto requiere hacer una spider inicial desde la web para llenar el caché.


Si ve el código fuente de scrapy Request por ejemplo github . Puede comprender qué solicitud de envío de scrapy al servidor http y obtener la página necesaria en respuesta del servidor. Su sistema de archivos no es servidor http. Para fines de prueba con scrapy, debe configurar el servidor http. Y luego puedes asignar urls a scrapy como

http://127.0.0.1/example.html


Puede rastrear un archivo local usando una url de la siguiente forma:

file:///127.0.0.1/path/to/file.html

No requiere que se instale un servidor http en su máquina.