2012-07-12 27 views
9

Kazıma için tor ve python kullanma Dergi makalelerinin nasıl alıntı yapıldığı analiz etmek için bir proje üzerinde çalışıyorum. Büyük bir dergi makale isimleri dosyam var. Onları Google Akademik'e iletmeyi ve her birinin kaç alıntı aldığını görmeyi amaçlıyorum. http://www.icir.org/christian/scholar.html denGoogle Scholar

  1. Kullanımı "scholar.py": İşte

    ben takip ediyorum stratejisidir. Bu, Google akademisyenini arayan ve CSV biçimindeki ilk isabetle ilgili bilgileri (alıntıların sayısı dahil) döndüren önceden yazılmış bir python betiğidir (alıntı sayısı dahil)

  2. Google uzmanı, belirli sayıda aramadan sonra sizi engeller (Yaklaşık 3000 makale başlığım var) sorgu). Çoğu insanın bu sorunu çözmek için Tor (How to make urllib2 requests through Tor in Python? ve Prevent Custom Web Crawler from being blocked) kullandığını buldum. Tor, her birkaç dakikada bir rastgele bir IP adresi veren bir hizmettir.

Ben de scholar.py ve tor başarıyla kurup çalışıyorum. Ben python veya urllib2 kütüphanesi ile çok aşina değilim ve sorgular Tor üzerinden yönlendirilir böylece scholar.py için hangi modifikasyonlar gerektiğini merak ediyorum.

Ayrıca varsa, kitle google bilgi sorguları için daha kolay (ve potansiyel olarak önemli ölçüde farklı) bir yaklaşım için önerilerde bulunmaktayım. Benim için peşin

cevap

1

yılında

Teşekkür TOR setting up a local proxy like polipo olduğunu kullanmak için en iyi yol. Ben repo klonlamak ve yerel olarak derlemek ister:

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

Ama paket yöneticinizi (mac içinde brew install polipo, Ubuntu'da apt install polipo) kullanabilir.

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

Sonra çalıştırın:

polipo 

urllib docs on how to use a proxy Bkz Sonra basit bir yapılandırma dosyası yazmak. Ben istekleri kütüphane, urllib için güzel bir sarmalayıcı kullanmak ister

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

: Birçok unix uygulamaları gibi, urllib ortam değişkeni http_proxy onurlandıracağım. Zaten yoksa:

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

Son şeyi dikkat:

pip install requests 

urllib Tor kullanıyorsa aşağıdaki tek satırlık Gerçek yazdırmalısınız Tor ağı bir serbest geçiş değil İnternette aptalca şeyler yapmak için kullanmanız bile, sizi tamamen anonim olduğunuzu varsaymamalısınız.

+0

İlk bağlantı artık geçerli değil – chrisfs

+0

Link rot, bu yüzden sadece bağlantıların cevapları berbattır ... Cevapları talimata dahil etmeliyim, maalesef şu anda yapma zamanım yok, üzgünüm. –

+0

bağlantı şu an için geri döndü – user3791372