我正在开展一个项目来分析如何引用期刊文章。我有一个大型的期刊文章名称文件。我打算将它们传递给Google学术搜索,并查看每个引用的引用次数。
以下是我所遵循的策略:
使用" scholar.py"来自http://www.icir.org/christian/scholar.html。这是一个预先编写的python脚本,可以搜索谷歌学者并以CSV格式返回首次点击的信息(包括引用次数)
谷歌学者在经过一定数量的搜索后阻止了你(我有大约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路由查询。
如果存在大规模谷歌学者查询,我也可以接受更容易(并且可能有很大差异)方法的建议。
提前致谢
答案 0 :(得分:1)
对我来说,使用TOR的最佳方式是setting up a local proxy like polipo。我喜欢克隆repo并在本地编译:
git clone https://github.com/jech/polipo.git
cd polipo
make all
make install
但您可以使用您的软件包管理器(Mac中的brew install polipo
,Ubuntu上的apt install polipo
)。然后编写一个简单的配置文件:
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包装器。如果您还没有:
pip install requests
如果urllib正在使用Tor,则以下单行应打印为True:
python -c "import requests; print('Congratulations' in requests.get('http://check.torproject.org/').text)"
最后一点,要注意:Tor网络不是在互联网上做愚蠢事情的免费通行证,因为即使使用它你也不应该认为你完全是匿名的。