2012-07-12 162 views
9

我正在開發一個項目來分析期刊文章的引用方式。我有大量的期刊文章名稱。我打算將它們傳遞給Google Scholar並查看每篇引文的數量。使用tor和python來挖掘Google學術搜索

這裏是我下面的策略:

  1. 使用 「scholar.py」 從http://www.icir.org/christian/scholar.html。這是一個預先編寫的python腳本,搜索谷歌學者,並以CSV格式返回第一次點擊的信息(包括引用次數)

  2. 谷歌學者經過一定次數的搜索後阻止了你(我有大約3000篇文章標題查詢)。我發現大多數人使用Tor(How to make urllib2 requests through Tor in Python?Prevent Custom Web Crawler from being blocked)來解決這個問題。 Tor是一種服務,每隔幾分鐘就會給你一個隨機的IP地址。

我有scholar.py和tor都成功設置和工作。我對python或庫urllib2不是很熟悉,也不知道需要對scholar.py進行哪些修改,以便通過Tor路由查詢。

如果存在質量Google學者查詢,我也可以提供一種更容易(也可能差別很大)的方法。

在此先感謝

回答

1

我使用Tor是setting up a local proxy like polipo的最佳途徑。我喜歡克隆回購和本地編譯:

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

但是你可以用你的包管理器(brew install polipo在Mac,apt install polipo在Ubuntu)。然後寫一個簡單的配置文件:

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

然後運行它:

polipo 

urllib docs on how to use a proxy。像許多UNIX應用程序,urllib的將履行環境變量http_proxy

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

我喜歡用請求庫,urllib的一個更好的包裝。如果你沒有它已經:如果urllib的是使用Tor

pip install requests 

下面的一行應該打印真:

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

最後一件事,提防:Tor網絡不是免費通行證在互聯網上做愚蠢的事情,因爲即使使用它,你也不應該認爲你是完全匿名的。

+0

第一個鏈接不再有效 – chrisfs 2014-09-15 08:11:45

+0

鏈接腐爛,這就是爲什麼只有鏈接的答案很糟糕......我應該在答案中包含說明,不幸的是我現在沒有時間去做,很抱歉。 – 2014-09-15 13:12:11

+0

鏈接現在備份 – user3791372 2015-11-26 20:17:52