gpt4 book ai didi

python - 使用 tor 和 python 抓取谷歌学术搜索

转载 作者:太空狗 更新时间:2023-10-29 19:29:44 32 4
gpt4 key购买 nike

我正在从事一个分析期刊文章被引用方式的项目。我有一个很大的期刊文章名称文件。我打算将它们传递给 Google Scholar,看看每个都有多少引用。

这是我遵循的策略:

  1. 使用 http://www.icir.org/christian/scholar.html 中的“scholar.py” .这是一个预先编写的 python 脚本,用于搜索 google scholar 并以 CSV 格式返回第一次命中的信息(包括引用次数)

  2. Google scholar 在搜索一定次数后屏蔽你(我有大约 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 路由查询。

如果存在的话,我也乐于接受关于一种更简单(并且可能有很大不同)的大规模谷歌学者查询方法的建议。

提前致谢

最佳答案

对我来说,使用 TOR 的最佳方式是 setting up a local proxy like polipo .我喜欢克隆 repo 并在本地编译:

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"

我喜欢使用 requests 库,这是一个更好的 urllib 包装器。如果您还没有:

pip install requests

如果 urllib 使用的是 Tor,下面的一行代码应该打印 True:

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

最后一点,请注意:Tor 网络并不是在 Internet 上做傻事的免费通行证,因为即使使用它,您也不应该假设您是完全匿名的。

关于python - 使用 tor 和 python 抓取谷歌学术搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11443600/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com