Durante mi rastreo, algunas páginas fallaron debido a una redirección inesperada y no se devolvió ninguna respuesta. ¿Cómo puedo detectar este tipo de error y volver a progtwigr una solicitud con la URL original, no con la URL redirigida? Antes de preguntar aquí, hago mucha búsqueda con Google. Parece que hay dos maneras de solucionar […]
estoy haciendo item[‘desc’] = site.select(‘a/text()’).extract() pero esto será impreso como este [u’\n A mano libera\n ‘] ¿Qué debo hacer para controlar y eliminar caracteres extraños como [u ‘\ n, el espacio de clasificación y’]? No puedo recortar exceptions.AttributeError: ‘list’ object has no attribute ‘strip’ y si se convierte en cadena y luego se elimina, el […]
Así es como se configura mi araña. class CustomSpider(CrawlSpider): name = ‘custombot’ allowed_domains = [‘www.domain.com’] start_urls = [‘http://www.domain.com/some-url’] rules = ( Rule(SgmlLinkExtractor(allow=r’.*?something/’), callback=’do_stuff’, follow=True), ) def start_requests(self): return Request(‘http://www.domain.com/some-other-url’, callback=self.do_something_else) Va a / some-other-url pero no / some-url. ¿Que esta mal aquí? La url especificada en start_urls es la que necesita enlaces extraídos y enviados […]
He instalado Scrapy utilizando los paquetes de Ubuntu que se proporcionan en el sitio web de Scrapy. Pero al iniciar un proyecto Scrapy scrapy startproject test Estoy recibiendo un mensaje de error como. Traceback (most recent call last): File “/usr/bin/scrapy”, line 5, in from pkg_resources import load_entry_point File “build/bdist.linux-x86_64/egg/pkg_resources/__init__.py”, line 3084, in File “build/bdist.linux-x86_64/egg/pkg_resources/__init__.py”, line […]
Soy nuevo con python y scrapy. Intento seguir el tutorial de Scrapy pero no entiendo la lógica del paso de almacenamiento . scrapy crawl spidername -o items.json -t json scrapy crawl spidername –set FEED_URI=output.csv –set FEED_FORMAT=csv No entiendo el significado de: -o -t –conjunto Gracias por tu ayuda
Estoy intentando configurar una clase de middleware descargador personalizado en Scrapy. Sospecho que me he perdido algo obvio, pero he leído la documentación varias veces y no he encontrado ninguna solución. Me estoy frustrando un poco con lo que debería ser una tarea extremadamente simple, así que espero que alguien pueda brindarme alguna información. He […]
Tengo una canalización personalizada con algunos argumentos que necesito inyectar en el constructor, como: class MyPipeline(object): def __init__(self, some_argument): self.some_argument = some_argument … El script (llamémoslo run_crawler.py) desde donde comienzo el proceso de rastreo es: process = CrawlerProcess(get_project_settings()) process.crawl(SomeCrawler) process.crawl(AnotherCrawler) … process.start() Y en settings.py: ITEM_PIPELINES = { ‘crawler.pipelines.SomePipeline’: 100, ‘crawler.pipelines.MyPipeline’: 300 } Supongo que […]
Estoy definiendo un exportador de elementos que empuja elementos a una cola de mensajes. A continuación se muestra el código. from scrapy.contrib.exporter import JsonLinesItemExporter from scrapy.utils.serialize import ScrapyJSONEncoder from scrapy import log from scrapy.conf import settings from carrot.connection import BrokerConnection, Exchange from carrot.messaging import Publisher log.start() class QueueItemExporter(JsonLinesItemExporter): def __init__(self, **kwargs): log.msg(“Initialising queue exporter”, level=log.DEBUG) […]
Tengo un proyecto desechable en el que el elemento que finalmente ingresa a mi canalización es relativamente grande y almacena muchos metadatos y contenido. Todo funciona correctamente en mi araña y tuberías. Los registros, sin embargo, están imprimiendo todo el artículo desechado cuando sale de la tubería (creo): 2013-01-17 18:42:17-0600 [tutorial] DEBUG: processing Pipeline pipeline […]
Quiero raspar una página de datos (usando la biblioteca de Scrapy de Python) sin tener que definir cada campo individual en la página. En su lugar, quiero generar campos de forma dinámica utilizando el id del elemento como nombre de campo. Al principio, pensé que la mejor manera de hacer esto sería tener un canal […]