gpt4 book ai didi

python - 使用 Python(或 R)提取谷歌学术搜索结果

转载 作者:太空狗 更新时间:2023-10-29 17:55:54 25 4
gpt4 key购买 nike

我想使用 python 来抓取 google scholar 搜索结果。我找到了两个不同的脚本来做到这一点,一个是 gscholar.py另一个是 scholar.py(那个可以用作 python 库吗?)。

现在,我或许应该说我是 Python 的新手,如果我错过了显而易见的内容,我深表歉意!

问题是当我按照 README 文件中的说明使用 gscholar.py 时,结果是

query() 至少需要 2 个参数(给定 1 个)

即使我指定了另一个参数(例如 gscholar.query("my query", allresults=True),我也会得到

query() 至少需要 2 个参数(给定 2 个)

这让我很困惑。我还尝试指定第三个可能的参数(outformat=4;这是 BibTex 格式)但这给了我一个函数错误列表。一位同事建议我导入 BeautifulSoup 和 this在运行查询之前,但这并没有改变问题。有什么解决问题的建议吗?

我找到了 R 的代码(参见 link)作为解决方案,但很快就被谷歌屏蔽了。也许有人可以建议如何改进该代码以避免被阻止?任何帮助,将不胜感激!谢谢!

最佳答案

我建议您不要使用特定的库来抓取特定的网站,而是使用经过良好测试并具有格式良好的文档的通用 HTML 库,例如 BeautifulSoup。

要使用浏览器信息访问网站,您可以使用带有自定义用户代理的 url opener 类:

from urllib import FancyURLopener
class MyOpener(FancyURLopener):
version = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36'
openurl = MyOpener().open

然后下载需要的url如下:

openurl(url).read()

要检索学者结果,只需使用 http://scholar.google.se/scholar?hl=en&q=${query} url。

要从检索到的 HTML 文件中提取信息片段,您可以使用这段代码:

from bs4 import SoupStrainer, BeautifulSoup
page = BeautifulSoup(openurl(url).read(), parse_only=SoupStrainer('div', id='gs_ab_md'))

这段代码提取了一个具体的 div 元素,该元素包含 Google 学术搜索结果页面中显示的结果数。

关于python - 使用 Python(或 R)提取谷歌学术搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13200709/

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