2011-11-10 20 views
6

Estoy tratando de rastrear el sitio web, que es lo suficientemente sofisticado como para detener los bots, quiero decir que solo permite unas pocas solicitudes, después de que se cuelga el Scrapy.usando tor con scrapy framework

Pregunta 1: si hay una manera, si Scrapy se bloquea puedo reiniciar mi proceso de rastreo desde el mismo punto. para deshacerse de este problema, escribí mi archivo de configuración como esta

BOT_NAME = 'MOZILLA' 
BOT_VERSION = '7.0' 

SPIDER_MODULES = ['yp.spiders'] 
NEWSPIDER_MODULE = 'yp.spiders' 
DEFAULT_ITEM_CLASS = 'yp.items.YpItem' 
USER_AGENT = '%s/%s' % (BOT_NAME, BOT_VERSION) 

DOWNLOAD_DELAY = 0.25 
DUPEFILTER=True 
COOKIES_ENABLED=False 
RANDOMIZE_DOWNLOAD_DELAY=True 
SCHEDULER_ORDER='BFO' 

Este es mi programa:

class ypSpider(CrawlSpider): 

    name = "yp" 


    start_urls = [ 
     SOME URL 

    ] 
    rules=(
     #These are some rules 
    ) 
    def parse_item(self, response): 
    #################################################################### 
    #cleaning the html page by removing scripts html tags  
    ####################################################### 
    hxs=HtmlXPathSelector(response) 

La pregunta es dónde podría escribir los servidores proxy HTTP y puedo tener que importar cualquier tor relacionado clases, soy nuevo en Scrapy debido a este grupo que aprendí tanto, ahora estoy tratando de aprender "cómo usar rotación ip o tor '

Como uno de nuestros miembros sugirió, comencé tor y yo establecer HTTP_PROXY en

set http_proxy=http://localhost:8118 

pero está lanzando algunos errores,

failure with no frames>: class 'twisted.internet.error.ConnectionRefusedError' Connection was refused by other side 10061: No connection could be made because the target machine actively refused it. 

así que cambié http_proxy a

set http_proxy=http://localhost:9051 

Ahora el error es

failure with no frames>: class 'twisted.internet.error.ConnectionDone' connection was closed cleanly. 

he comprobado la configuración de red para Firefox, hay No pude ver ningún proxies http, pero en vez de eso, está usando SO CKSV5, allí está mostrando 127.0.0.1:9051. (antes de TOR funciona sin proxies) Por favor, ayúdenme. Aún no entiendo cómo usar TOR a través de Scrapy. ¿Qué paquete de TOR se supone que debo usar y cómo? espero que mis dos preguntas se resolverán

  1. Si un rastreador scrapy cuelga por alguna razón (fallo de conexión), me gustaría reanudar el servicio a partir de ahí sí
  2. Cómo usar IPs que gira en Scrapy
+1

¿Ha intentado fijar la cadena de agente de usuario a algo más convincente que 'Mozilla/7.0'? Intente utilizar la cadena completa de agente de usuario de su propio navegador: http://httpbin.org/user-agent – Acorn

Respuesta

4

TOR por sí mismo no es un proxy http, el puerto 8118 y el error de conexión rechazada sugieren que no tiene privoxy [1] funcionando correctamente. Intente configurar el privoxy correctamente y luego intente de nuevo usando la variable de entorno http_proxy=http://localhost:8118.

He hecho rastreo a través de TOR utilizando privoxy con scrapy con éxito.

[1] http://www.privoxy.org/

+3

Hola Rho ¿Puede compartir aquí su experiencia y el código fuente? Eso podría ser muy interesante para nosotros. Gracias de antemano – lucab0ni

+0

@ imx51 no hay mucho que compartir sobre el uso de TOR como proxy. Solo tienes que configurar la variable de entorno y eso es todo. – Rolando