Articles of picante

Scrapy: cómo detectar el error de descarga e intentar descargarlo nuevamente

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 […]

Scrapy: ¿Por qué las cadenas extraídas están en este formato?

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 […]

Scrapy: ¿Cuál es la forma correcta de usar start_requests ()?

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 […]

Error al iniciar nuevo proyecto de scrapy

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 […]

Scrapy: almacenando los datos.

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

No se puede definir middleware descargador personalizado en Scrapy

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 […]

Inyectando argumentos en el pipeline de scrapy

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 […]

Scrapy exportador personalizado

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) […]

suprimir el artículo de Scrapy impreso en los registros después de la tubería

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 […]

Datos de raspado sin tener que definir explícitamente cada campo para ser raspado

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 […]