2012-07-12 26 views
9

Estoy trabajando en un proyecto para analizar cómo se citan los artículos de revistas. Tengo un gran archivo de nombres de artículos de revistas. Tengo la intención de pasarlos a Google Scholar y ver cuántas citas tiene cada uno.Usando tor y python para borrar Google Scholar

Aquí es la estrategia que estoy siguiendo:

  1. Uso "scholar.py" de http://www.icir.org/christian/scholar.html. Esta es una secuencia de comandos python preescrita que busca google scholar y devuelve información sobre el primer hit en formato CSV (incluyendo número de citas)

  2. Google scholar te bloquea después de un cierto número de búsquedas (Tengo aproximadamente 3000 títulos de artículos para consulta). He descubierto que la mayoría de la gente usa Tor (How to make urllib2 requests through Tor in Python? y Prevent Custom Web Crawler from being blocked) para resolver este problema. Tor es un servicio que le brinda una dirección IP aleatoria cada pocos minutos.

Tengo scholar.py y tor ambos configurados y funcionando con éxito. No estoy muy familiarizado con python o la biblioteca urllib2 y me pregunto qué modificaciones se necesitan para scholar.py para que las consultas se enruten a través de Tor.

También soy receptivo a sugerencias para un enfoque más fácil (y potencialmente considerablemente diferente) para las consultas masivas de eruditos de Google, si es que existe alguno.

Gracias de antemano

Respuesta

1

Para mí la mejor manera de utilizar TOR es setting up a local proxy like polipo. Me gusta para clonar el repositorio y compilar localmente:

git clone https://github.com/jech/polipo.git 
cd polipo 
make all 
make install 

pero se puede utilizar el gestor de paquetes (brew install polipo en mac, apt install polipo en Ubuntu). A continuación, escribir un simple archivo de configuración:

echo socksParentProxy=localhost:9050 > ~/.polipo 
echo diskCacheRoot='""' >> ~/.polipo 
echo disableLocalInterface=true >> ~/.polipo 

luego ejecutarlo:

polipo 

Ver urllib docs on how to use a proxy. Al igual que muchas aplicaciones UNIX, urllib homenajearán a la variable de entorno http_proxy:

export http_proxy="http://localhost:8123" 
export https_proxy="http://localhost:8123" 

me gusta usar la biblioteca de solicitudes, una envoltura más agradable para urllib. Si no lo tienes:

pip install requests 

Si está usando Tor urllib la siguiente de una sola línea debe imprimir Verdadero:

python -c "import requests; print('Congratulations' in requests.get('http://check.torproject.org/').text)" 

Lo último, tenga cuidado: la red Tor no es un pase libre por hacer cosas tontas en Internet porque, incluso usándolo, no debes asumir que eres totalmente anónimo.

+0

El primer enlace ya no es válido – chrisfs

+0

Link rot, por eso las respuestas solo de enlace son una mierda ... Debo incluir las instrucciones en la respuesta, lamentablemente no tengo tiempo para hacerlo ahora, lo siento. El enlace –

+0

está respaldado por ahora – user3791372

Cuestiones relacionadas