2012-07-12 33 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