我想用 python 来抓取谷歌学术搜索结果。我找到了两个不同的脚本来执行此操作,一个是 gscholar.py ,另一个是 scholar.py
(那个可以用作 python 库吗?)。
现在,我也许应该说我是 python 的新手,如果我错过了显而易见的事情,我深表歉意!
问题是当我使用 gscholar.py
如 README 文件中所述时,我得到了结果
query() takes at least 2 arguments (1 given)
。
即使我指定了另一个参数(例如 gscholar.query("my query", allresults=True)
,我得到
query() takes at least 2 arguments (2 given)
。
这让我很困惑。我还尝试指定第三个可能的参数( outformat=4
;这是 BibTex 格式),但这给了我一个函数错误列表。一位同事建议我在运行查询之前导入 BeautifulSoup 和 这个,但这并没有改变问题。有什么建议可以解决这个问题吗?
我找到了 R 的代码(参见 链接)作为解决方案,但很快就被谷歌屏蔽了。也许有人可以建议如何改进该代码以避免被阻止?任何帮助,将不胜感激!谢谢!
原文由 Flow 发布,翻译遵循 CC BY-SA 4.0 许可协议
我建议您不要使用特定的库来抓取特定的网站,而是使用经过良好测试并具有格式良好的文档的通用 HTML 库,例如 BeautifulSoup。
要使用浏览器信息访问网站,您可以使用带有自定义用户代理的 url opener 类:
然后下载需要的url如下:
要检索学者结果,只需使用
http://scholar.google.se/scholar?hl=en&q=${query}
url。要从检索到的 HTML 文件中提取信息片段,您可以使用这段代码:
这段代码提取了一个具体的
div
元素,其中包含 Google 学术搜索结果页面中显示的结果数。