Google 学术搜索已成为研究人员、学者和学生寻求学术文章、论文和学术资源的基石。 Google Scholar 于 2004 年推出,是一个专注于学术出版物的专业搜索引擎,提供跨学科的学术知识的庞大存储库。多年来,它已成为一种宝贵的工具,提供丰富的学术内容,包括期刊、会议论文、论文等。

Google Scholar 在全球拥有数百万用户,在促进学术研究、帮助个人及时了解其感兴趣领域的最新进展和发现方面发挥着关键作用。在这篇博客中,我们将指导您如何使用谷歌学者抓取器抓取研究论文 蟒蛇.

如果您想直接进入第一步来抓取谷歌学者,请单击此处。

目录

  1. 为什么要抓取 Google 学术 SERP?
  • 您可以从 Google Scholar 中抓取什么?
  • 谷歌学术数据的潜在用例
  1. 设置 Python 环境
  • 安装 Python 和基本库
  • 选择合适的开发 IDE
  1. Google Scholar SERP 抓取的常见方法
  • 利用 Python 的请求库
  • 检查 Google Scholar 的 HTML 结构
  • 使用 BeautifulSoup 解析 HTML
  • 通用方法的局限性和挑战
  1. 使用 Crawlbase 爬网 API 提高效率
  • Crawlbase 注册和 API 令牌
  • 使用 Crawlbase 库与 Crawling API 交互
  • 抓取 Google 学术 SERP 结果
  • 处理分页
  • 将提取的数据保存在 SQLite 中
  1. 最后的思考
  2. 常见问题解答(FAQ)

为什么要抓取 Google 学术 SERP?

网络抓取 Google Scholar SERP 为寻求学术信息的研究人员提供了许多好处。

获取丰富的学术信息

通过抓取 Google Scholar SERP,研究人员可以获得详尽的学术文章数据库。大量的信息使他们能够探索广泛的研究和观点,丰富他们对研究领域的理解。

此外,获取如此丰富的学术信息也可以带来偶然的发现。研究人员可能会偶然发现他们最初并未寻求的相关文章或研究,从而为他们的研究开辟新的探索途径和潜在突破。

提高研究效率

在 Google Scholar SERP 上手动搜索无数页的搜索结果可能是一项耗时的任务。然而,通过网络抓取,研究人员可以自动化该过程,从而节省宝贵的时间,并使他们能够专注于分析检索到的数据。这种效率的提高为协作和创新开辟了新的可能性。

此外,通过网络抓取Google Scholar SERP实现的研究效率的提高还可以带来更加系统和全面的文献综述。研究人员可以在更短的时间内收集大量相关文章和研究,使他们能够更有效地综合信息并在自己的研究项目中做出明智的决策。

您可以从 Google Scholar 中抓取什么?

  1. 引文指标:Google 学术搜索提供学术文章的引用指标,提供对出版物影响力和相关性的见解。通过抓取这些指标,研究人员可以识别特定领域内有影响力的作品。
  2. 作者信息:提取有关作者、其从属关系和协作网络的数据有助于了解学术格局。它有助于跟踪特定研究人员的贡献并发现潜在的合作者。
  3. 出版详情:抓取详细信息,例如出版日期、期刊、会议或书籍来源。这些信息有助于评估学术著作的新近度和可信度。
  4. 摘要和关键词:提取摘要和关键词可提供学术文章内容的快照。这些数据对于快速衡量出版物与特定研究兴趣的相关性至关重要。
  5. 全文链接:Google Scholar 上通常提供指向学术文章全文的直接链接。抓取这些链接使用户能够访问相关出版物的完整内容。
  6. 相关文章:Google Scholar 根据内容和引用推荐相关文章。抓取这些数据为研究人员提供了与其感兴趣领域相关的额外来源和观点。
  7. 作者简介:Google Scholar 为作者创建个人资料,展示他们的出版物和引用指标。提取这些数据可以全面了解作者的作品。

谷歌学术数据的潜在用例

抓取 Google Scholar SERP 结果为学术和研究导向的信息开辟了多种可能性。

以下是提取的数据的一些潜在用例:

谷歌学术数据的用例
  1. 学术研究:研究人员和学者可以利用抓取到的数据分析学术趋势,识别特定领域的关键贡献者,探索学术内容的分布。
  2. 引文分析:这些数据可用于进行引文分析,帮助研究人员了解学术出版物在特定领域内的影响力和影响力。
  3. 作者简介:通过提取有关作者、其隶属关系和出版历史的信息,这些数据有助于创建研究人员的详细档案,有助于学术网络和协作。
  4. 趋势分析:抓取的数据可以识别和分析学科内的新兴趋势,帮助研究人员了解其领域的最新发展。
  5. 机构研究评估:教育机构可以使用这些数据来评估其教师的研究成果、跟踪学术合作并衡量其研究活动的影响。
  6. 内容总结:自然语言处理 (NLP) 技术可应用于抓取的摘要和文本,从而能够创建摘要或主题集群,以便快速洞察研究领域。
  7. 教育资源开发:这些数据对于希望开发课程材料、案例研究或参考列表的教育工作者非常有价值,可确保教育内容与最新的学术文献保持一致。
  8. 竞争力分析:学术机构、出版商或研究人员可以通过比较特定研究领域内的出版物数量、引用率和协作网络来进行竞争分析。
  9. 科学计量学研究:科学计量学家可以利用这些数据对学术出版物进行定量分析,探索合作模式、引用动态和研究主题的演变。
  10. 决策支持:研究人员和决策者可以使用抓取的数据来为战略决策提供信息,例如资金分配、学术伙伴关系以及对特定研究领域的投资。

设置 Python 环境

抓取 Google Scholar SERP 需要配置良好的 Python 环境。以下是帮助您的环境为数据检索之旅做好准备的分步指南。

安装 Python 和基本库

首先安装 Python,这是一种多功能编程语言,它将成为您的抓取项目的支柱。参观 Python官方网站,下载最新版本,然后按照安装说明进行操作。

为了简化抓取过程,某些 Python 库是必不可少的:

  • 要求:该库简化了 HTTP 请求,使您能够获取 Google Scholar SERP 页面的 HTML 内容。
1
2
点安装请求

  • 美丽汤:BeautifulSoup 是一个用于解析 HTML 和提取信息的强大库,对于导航和抓取 SERP 页面的结构化内容非常有用。
1
点安装beautifulsoup4
  • 爬虫库:为了获得先进且高效的方法,将 Crawlbase 集成到您的项目中可以带来动态内容处理、IP 轮换以及无缝克服常见抓取障碍等功能。访问 Crawlbase 网站,注册并获取您的 API 令牌。
1
点安装爬虫库

选择合适的开发 IDE

选择正确的集成开发环境 (IDE) 会显着影响您的编码体验。以下是一些流行的选择:

  • PyCharm:PyCharm 是专为 Python 开发的强大 IDE。它提供智能代码完成、调试工具和用户友好界面等功能。您可以从 JetBrains 网站免费下载社区版。
  • Jupyter笔记本:Jupyter Notebooks 是交互式数据探索和可视化的理想选择,为代码开发和分析提供了用户友好的界面。
  • Visual Studio代码:Visual Studio Code 以其多功能性和可扩展性而闻名,它提供了一个强大的环境,具有语法突出显示、调试和 Git 集成等功能。

无论您选择哪种 IDE,请确保它符合您的工作流程和偏好。现在您的 Python 环境已经设置完毕,让我们继续探索抓取 Google Scholar SERP 的常用方法。

Google Scholar SERP 抓取的常见方法

当开始使用通用方法进行 Google Scholar SERP 抓取时,您将利用 Python 强大的工具来收集有价值的数据。请按照以下步骤开始:

利用 Python 的请求库

在 Google Scholar SERP 抓取时,第一步是使用 Python 的 Requests 库的强大功能。该库简化了发出 HTTP 请求以获取搜索结果页面的 HTML 内容的过程。让我们使用“数据科学”的搜索查询示例来深入研究详细信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
进口 要求

# 定义搜索查询
搜索查询= 《数据科学》

# 使用搜索查询制定 Google Scholar 的 URL
网址= f"https://scholar.google.com/scholar?q={搜索查询}"

# 发出HTTP请求来获取页面内容
响应 = requests.get(url)

# 检查请求是否成功(状态码200)
if 响应.status_code == 200:
# 存储页面的HTML内容
html_content = 响应. 文本

打印(html_内容)
其他:
# 如果请求失败则打印错误信息
打印(f"无法获取页面。状态代码: {响应.status_code}")

在此脚本中,我们首先定义搜索查询,然后通过附加查询构建 Google Scholar 的 URL。 requests.get() 方法用于发出 HTTP 请求,并存储获取的 HTML 内容以供进一步处理。

运行脚本:

打开您喜欢的文本编辑器或 IDE,复制提供的代码,并将其保存在 Python 文件中。例如,将其命名为 google_scholar_scraper.py.

打开终端或命令提示符并导航到您保存的目录 google_scholar_scraper.py。使用以下命令执行脚本:

1
python google_scholar_scraper.py

当您按下 Enter 键时,您的脚本就会生效,向 Google Scholar 网站发送请求,检索 HTML 内容并将其显示在您的终端上。

HTML 输出快照

检查 Google Scholar 的 HTML 结构

在抓取 Google Scholar 时,使用浏览器开发人员工具检查元素至关重要。以下是如何识别关键数据点的 CSS 选择器:

  1. 右键单击并检查:右键单击要抓取的元素(例如标题、作者、出版物详细信息),然后从上下文菜单中选择“检查”。
  2. 使用浏览器开发工具:浏览器开发人员工具允许您通过将鼠标悬停在元素上、突出显示相应的代码以及了解类和标签层次结构来探索 HTML 结构。
  3. 识别类和标签:查找与您感兴趣的数据点相关的独特类和标签。例如,标题可能位于

    具有特定类别的标签。

  4. 适应您的需求:调整您对 HTML 结构的理解,以创建针对所需元素的精确 CSS 选择器。

通过检查 Google 学术搜索结果中的元素,您可以辨别在抓取过程中提取有价值信息所需的 CSS 选择器。了解结构可确保根据您的特定要求准确有效地检索数据。

使用 BeautifulSoup 解析 HTML

解析 HTML 是抓取 Google Scholar SERP 结果的关键步骤。 BeautifulSoup 是一个 Python 库,通过提供导航、搜索和修改解析树的工具来简化此过程。让我们使用 BeautifulSoup 来导航并从之前获取的 HTML 内容中提取结构化数据。

备注:针对Google Scholar HTML结构定制的最新CSS选择器,请参考上一步了解如何识别CSS选择器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
进口 要求
bs4 进口 美丽汤
进口 JSON

DEF 解析谷歌学术(html_内容):
# 初始化一个空列表来存储结果详细信息
结果详细信息 = []

# 使用 BeautifulSoup 解析 HTML 内容
汤 = BeautifulSoup(html_content, 'html.parser')

# 提取结果项
result_items = soup.select('div.gs_r[数据-rp]')

# 遍历每个结果项
结果项 in 结果项目:
# 提取相关细节
位置 = result_item.get('数据-rp')
标题 = result_item.find('h3', 类_='gs_rt')
链接 = result_item.select_one('h3.gs_rt > a')
描述 = result_item.find('div', 类_='gs_rs')
作者 = result_item.find('div', 类_='gs_a')

# 为每个结果构建一个字典
结果详细信息 = {
'位置': 位置,
'标题': 标题.text.strip() if 标题 其他 不包含,
'关联': 关联['href']。条() if 链接 其他 不包含,
'描述': 描述.text.strip() if 描述 其他 不包含,
'作者': 作者.text.strip() if 作者 其他 不包含
}

# 将结果详细信息添加到列表中
results_detail.append(result_details)

回报 结果_详细信息

DEF ():
# 搜索查询示例
搜索查询= 《数据科学》

# 带有搜索查询的 Google Scholar 的示例 URL
网址= f"https://scholar.google.com/scholar?q={搜索查询}"

# 发出HTTP请求来获取页面内容
响应 = requests.get(url)

# 检查请求是否成功(状态码200)
if 响应.status_code == 200:
# 存储页面的HTML内容
html_content = 响应. 文本

# 使用 BeautifulSoup 提取相关细节
结果详细信息 = parse_google_scholar(html_content)

# 以格式化的方式打印提取的详细信息
打印(json.dumps(结果_详细信息,ensure_ascii=, 缩进=2))
其他:
# 如果请求失败则打印错误信息
打印(f"无法获取页面。状态代码: {响应.status_code}")

if __名字__ == “__主要的__”:
主()

在此更新的脚本中,我们使用 BeautifulSoup 来定位并提取与 位置、标题、链接、描述和作者 每个搜索结果的信息。我们定义了一个函数 parse_google_scholar ,它将 HTML 内容作为输入并返回包含提取的详细信息的字典列表。 main 函数演示了如何使用该函数进行指定的搜索查询。

示例输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
[
{
“位置”: “0”,
“标题”: “[BOOK][B] R 用于数据科学”,
“关联”: “https://books.google.com/books?hl=en&lr=&id=TiLEEAAAQBAJ&oi=fnd&pg=PT9&dq=Data+Science&ots=ZJo3gizSpU&sig=J3dnIWbEJgmDip2NM-OYwWBdOFg”,
“说明”: “……在我们的数据科学过程模型中,您从数据导入和整理开始。接下来,您\n通过转换、可视化和建模的迭代循环来理解您的数据。您……”,
“作者”: “H Wickham、M Çetinkaya-Rundel、G Grolemund - 2023 - books.google.com”
},
{
“位置”: “1”,
“标题”: “[BOOK][B] 数据科学的实践”,
“关联”: "https://link.springer.com/chapter/10.1007/978-3-662-49851-4_1",
“说明”: “……流程挖掘为当今的数据科学家提供了强大的工具。但是,在介绍本书的主要主题之前,我们提供了数据科学学科的概述。……”,
“作者”: “W 范德阿尔斯特,W 范德阿尔斯特 - 2016 - 施普林格”
},
{
“位置”: “2”,
“标题”: “数据科学及其与大数据和数据驱动决策的关系”,
“关联”: “https://www.liebertpub.com/doi/abs/10.1089/big.2013.1508”,
“说明”: “......数据科学是数据处理技术(包括“大数据”)和数据之间的结缔组织......数据科学作为一个领域与数据科学作为一个职业的问题......”,
“作者”: “F Provost、T Fawcett - 大数据,2013 年 - liebertpub.com”
},
{
“位置”: “3”,
“标题”: “[BOOK][B] 商业数据科学:您需要了解的有关数据挖掘和数据分析思维的知识”,
“关联”: "https://books.google.com/books?hl=en&lr=&id=EZAtAAAAQBAJ&oi=fnd&pg=PP1&dq=Data+Science&ots=ymVPQt7Ry2&sig=oJQNtystM4R8SkbFNrsGdLpHVgk",
“说明”: “……数据科学,引导您了解从数据中提取有用的\n知识和商业价值所必需的“数据分析思维”……数据科学或成为崭露头角的数据科学家……”,
“作者”: “F 教务长,T 福塞特 - 2013 - books.google.com”
},
{
“位置”: “4”,
“标题”: “数据科学、预测分析和大数据:一场将改变供应链设计和管理的革命”,
“关联”: “https://onlinelibrary.wiley.com/doi/abs/10.1111/jbl.12010”,
“说明”: “……数据科学家并讨论这些技能和领域知识如何影响 SCM 数据科学家的效率。……我们提出数据科学和预测分析的定义……”,
“作者”: “MA Waller,SE Fawcett - 商业物流杂志,2013 年 - Wiley 在线图书馆”
},
{
“位置”: “5”,
“标题”: “供应链管理中数据科学、预测分析和大数据的数据质量:问题介绍和研究建议……”,
“关联”: “https://www.sciencedirect.com/science/article/pii/S0925527314001339”,
“说明”: “……数据科学、预测分析和大数据 (DPB) 等主题。考虑到\n供应链管理 DPB 活动的激增以及所依据的数据……”,
“作者”: “BT Hazen、CA Boone、JD Ezell…-International Journal of…,2014 年 - Elsevier”
},
{
“位置”: “6”,
“标题”: “[书籍][B] 计算机时代统计推断,学生版:算法、证据和数据科学”,
“关联”: "https://books.google.com/books?hl=en&lr=&id=q1ctEAAAQBAJ&oi=fnd&pg=PR15&dq=Data+Science&ots=OM9gMXSXdt&sig=dr0viCkWNpZZeUAE9a-fMTXZZSo",
“说明”: “......每个有抱负的数据科学家都应该仔细研究这本书,将其作为参考,并深入了解学科的发展,将数据科学置于其历史地位。” ……”,
“作者”: “B 埃夫隆,T 哈斯蒂 - 2021 - books.google.com”
},
{
“位置”: “7”,
“标题”: “理论指导的数据科学:从数据中进行科学发现的新范式”,
“关联”: “https://ieeexplore.ieee.org/abstract/document/7959606/”,
“说明”: “……数据科学模型可以自动从大数据中学习模式和模型,\n……将科学知识和数据科学整合为理论指导的数据科学 (TGDS)。……”,
“作者”: “A Karpatne、G Atluri、JH Faghmous…-…知识和数据…,2017 年 - ieeexplore.ieee.org”
},
{
“位置”: “8”,
“标题”: “量化的自我:大数据科学和生物发现的根本性颠覆”,
“关联”: “https://www.liebertpub.com/doi/abs/10.1089/big.2012.0002”,
“说明”: “……大数据科学中出现的一个关键当代趋势是……大数据科学家开发\n新模型来支持 QS 数据……以及如何使用个人数据的隐私标准。下一步……”,
“作者”: “M Swan - 大数据,2013 - liebertpub.com”
},
{
“位置”: “9”,
“标题”: “[PDF][PDF] 数据科学家”,
“关联”: “http://blogs.sun.ac.za/open-day/files/2022/03/Data-Scientist-Harvard-review.pdf”,
“说明”: “……Greenplum 公司、EMC 认为数据科学家的可用性将成为\n……大数据的一个限制因素。因此,其教育服务部门推出了数据科学和大数据分析……”,
“作者”: “TH Davenport,DJ Patil - 哈佛商业评论,2012 - blogs.sun.ac.za”
}
]

通用方法的局限性和挑战

虽然使用 Python 的 Requests 库和 BeautifulSoup 的常见方法是可行的,但它具有某些限制和挑战,可能会影响抓取 Google Scholar SERP 结果的效率和可靠性。

无动态内容处理

常见方法依赖于静态 HTML 解析,这意味着它可能无法有效处理通过 JavaScript 加载动态内容的页面。与许多现代网站一样,Google Scholar 采用动态加载来增强用户体验,这使得仅通过静态解析来捕获所有相关数据变得具有挑战性。

没有用于处理 IP 块的内置机制

包括 Google Scholar 在内的网站可能会通过实施 IP 封锁来实施防止抓取的措施。常见方法缺乏处理 IP 块的内置机制,这可能会导致中断和不完整的数据检索。

验证码漏洞

网络抓取经常遇到验证码带来的挑战,验证码是作为针对自动化机器人的防御机制而实现的。常见方法不包括处理验证码的本机功能,可能会导致抓取过程中断。

手动处理分页

常见方法需要手动处理分页,这意味着您必须实现代码来导航多个结果页面。这种手动干预可能非常耗时,并且如果实施不正确,可能会导致数据检索不完整。

潜在的合规问题

抓取 Google Scholar 和类似网站会引起人们对遵守服务条款的担忧。常见方法本身并不能解决合规性问题,网络抓取工具需要谨慎行事,以避免违反网站设定的条款。

为了克服这些限制和挑战,需要更先进、更强大的解决方案,例如 Crawlbase 爬取 API,可以就业。 Crawlbase 提供动态内容处理、自动 IP 轮换以避免阻塞以及无缝分页管理等功能,为抓取 Google Scholar SERP 结果提供了更可靠、更高效的方法。

使用 Crawlbase 爬网 API 提高效率

在本节中,我们将深入研究 Crawlbase Crawling API 如何显着提高 Google Scholar SERP 抓取流程的效率。

Crawlbase 注册和 API 令牌

要访问 Crawlbase Crawling API 的强大功能,请首先在 爬虫库 平台。注册是一个简单的过程,需要您提供基本详细信息。

要与 Crawlbase 爬网 API 交互,您需要一个令牌。 Crawlbase提供了两种类型 令牌:JS(JavaScript)和普通。要抓取 Google Scholar SERP 结果,可以选择“Normal”标记。请将此令牌保密,并在您发起与 API 的通信时使用它。

这是奖金:Crawlbase 免费提供前 1000 个请求。这使您无需任何初始成本即可探索和体验 Crawlbase Crawling API 的效率。

使用 Crawlbase 库与 Crawling API 交互

基于 Python 的 Crawlbase 库无缝地支持与 API 的交互,轻松地将其集成到您的 Google Scholar 抓取工作中。以下代码片段说明了通过 Crawlbase Python 库初始化和使用 Crawling API 的过程。

1
2
3
4
5
6
7
8
9
10
11
12
13
 爬行基地 进口 抓取API

API_TOKEN = 'YOUR_CRAWLBASE_TOKEN'
爬行 API = 爬行 API({'令牌':API_TOKEN})

网址= “https://www.example.com/”
响应=crawling_api.get(url)

if 回复[“标题”]['pc_status'] == '200':
html_内容=响应['身体']。解码('utf-8')
打印(html_内容)
其他:
打印(f"无法获取页面。Crawlbase 状态代码: {回复[“标题”]['pc_status']}")

有关 Crawling API 的深入信息,请参阅 Crawlbase 平台上提供的综合文档。在这里访问它。要进一步深入了解 Crawlbase Python 库的功能并探索其他使用示例,请查看此处的文档。

抓取 Google 学术 SERP 结果

让我们从常用方法中增强 Google Scholar 抓取脚本,以有效提取搜索引擎结果页面 (SERP) 详细信息。下面更新的脚本利用 Crawlbase 爬行 API 来提供更可靠和可扩展的解决方案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 爬行基地 进口 抓取API
bs4 进口 美丽汤
进口 JSON

DEF 获取html(API、网址):
响应 = api.get(url)

if 回复[“标题”]['pc_status'] == '200':
回报 回复['身体']。解码('utf-8')
其他:
打印(f"无法获取页面。Crawlbase 状态代码: {回复[“标题”]['pc_status']}")
回报 不包含

DEF 解析谷歌学术(html_内容):
# 初始化一个空列表来存储结果详细信息
结果详细信息 = []

# 使用 BeautifulSoup 解析 HTML 内容
汤 = BeautifulSoup(html_content, 'html.parser')

# 提取结果项
result_items = soup.select('div.gs_r[数据-rp]')

# 遍历每个结果项
结果项 in 结果项目:
# 提取相关细节
位置 = result_item.get('数据-rp')
标题 = result_item.find('h3', 类_='gs_rt')
链接 = result_item.select_one('h3.gs_rt > a')
描述 = result_item.find('div', 类_='gs_rs')
作者 = result_item.find('div', 类_='gs_a')

# 为每个结果构建一个字典
结果详细信息 = {
'位置': 位置,
'标题': 标题.text.strip() if 标题 其他 不包含,
'关联': 关联['href']。条() if 链接 其他 不包含,
'描述': 描述.text.strip() if 描述 其他 不包含,
'作者': 作者.text.strip() if 作者 其他 不包含
}

# 将结果详细信息添加到列表中
results_detail.append(result_details)

回报 结果_详细信息

DEF ():
API_TOKEN = 'YOUR_CRAWLBASE_TOKEN'
爬行 API = 爬行 API({'令牌':API_TOKEN})

# 搜索查询示例
搜索查询= 《数据科学》

# 带有搜索查询的 Google Scholar 的示例 URL
网址= f"https://scholar.google.com/scholar?q={搜索查询}"

# 使用 Crawlbase Crawling API 从 Google Scholar SERP 获取 HTML 内容
html_content = fetch_html(crawling_api, url)

if html_内容:
# 使用 BeautifulSoup 提取相关细节
结果详细信息 = parse_google_scholar(html_content)

# 以格式化的方式打印提取的详细信息
打印(json.dumps(结果_详细信息,ensure_ascii=, 缩进=2))
其他:
# 如果请求失败则打印错误信息
打印(“由于 HTML 检索失败而退出。”)

if __名字__ == “__主要的__”:
主()

此更新的脚本合并了 Crawlbase Crawling API,以确保顺利检索 Google Scholar SERP 结果,而无需遇到 IP 块和验证码等常见问题。

示例输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
[
{
“位置”: “0”,
“标题”: “[BOEK][B] R 用于数据科学”,
“关联”: "https://books.google.com/books?hl=nl&lr=&id=TiLEEAAAQBAJ&oi=fnd&pg=PT9&dq=Data+Science&ots=ZJo3gjqQpN&sig=FNdpemZJ2faNxihOp29Z3SIpLYY",
“说明”: “……在我们的数据科学过程模型中,您从数据导入和整理开始。接下来,您\n通过转换、可视化和建模的迭代循环来理解您的数据。您……”,
“作者”: “H Wickham、M Çetinkaya-Rundel、G Grolemund - 2023 - books.google.com”
},
{
“位置”: “1”,
“标题”: “[HTML][HTML] 大数据分析中的深度学习应用和挑战”,
“关联”: "https://journalofbigdata.springeropen.com/articles/10.1186/s40537-014-0007-7",
“说明”: “......无监督数据,使其成为大数据分析的一个有价值的工具,其中原始数据\n很大程度上......在大数据分析中,包括从大量......中提取复杂的模式......”,
“作者”: “MM Najafabadi、F Villanustre…-…大数据,2015 年-journalofbigdata.springeropen.com”
},
{
“位置”: “2”,
“标题”: “[HTML][HTML] 医疗保健中的大数据分析:前景和潜力”,
“关联”: "https://link.springer.com/article/10.1186/2047-2501-2-3",
“说明”: “......医疗保健中的大数据分析。第三,描述了大数据分析应用程序开发\n方法。第四,我们提供了医疗保健中大数据分析的示例......”,
“作者”: “W Raghupathi、V Raghupathi - 健康信息科学和系统,2014 年 - Springer”
},
{
“位置”: “3”,
“标题”: “[BOEK][B] 数据科学的实践”,
“关联”: "https://link.springer.com/chapter/10.1007/978-3-662-49851-4_1",
“说明”: “……流程挖掘为当今的数据科学家提供了强大的工具。但是,在介绍本书的主要主题之前,我们提供了数据科学学科的概述。……”,
“作者”: “W 范德阿尔斯特,W 范德阿尔斯特 - 2016 - 施普林格”
},
{
“位置”: “4”,
“标题”: 《数据科学与预测》,
“关联”: “https://dl.acm.org/doi/abs/10.1145/2500499”,
“说明”: “……因此,数据科学可能意味着关注数据,进而涉及统计,或者\n对数据的组织、属性和分析及其在……中的作用的系统研究”,
“作者”: “V Dhar - ACM 通讯,2013 年 - dl.acm.org”
},
{
“位置”: “5”,
“标题”: “计算最优传输:在数据科学中的应用”,
“关联”: “https://www.nowpublishers.com/article/Details/MAL-073”,
“说明”: “……用于解决成像科学中的各种问题(例如颜色或纹理处理),……\n这有助于 OT 找到数据科学中的相关性。我们为许多问题提供了突出的位置……”,
“作者”: “G Peyré、M Cuturi - 机器基础和趋势®……,2019 年 - nowpublishers.com”
},
{
“位置”: “6”,
“标题”: “大数据分析的趋势”,
“关联”: “https://www.sciencedirect.com/science/article/pii/S0743731514000057”,
“说明”: “……数据分析问题。我们描述了执行分析的常用硬件平台……我们最后简要讨论了数据分析的各种应用,……”,
“作者”: “K Kambatla、G Kollias、V Kumar、A Grama - 并行与……杂志,2014 年 - 爱思唯尔”
},
{
“位置”: “7”,
“标题”: “数据科学及其与大数据和数据驱动决策的关系”,
“关联”: “https://www.liebertpub.com/doi/abs/10.1089/big.2013.1508”,
“说明”: “......数据科学是数据处理技术(包括“大数据”)和数据之间的结缔组织......数据科学作为一个领域与数据科学作为一个职业的问题......”,
“作者”: “F Provost、T Fawcett - 大数据,2013 年 - liebertpub.com”
},
{
“位置”: “8”,
“标题”: “大数据、数据科学和分析:信息系统研究的机遇和挑战”,
“关联”: “https://pubsonline.informs.org/doi/abs/10.1287/isre.2014.0546”,
“说明”: “……数据、分析和数据科学我们相信,数据科学和\n商业分析的某些组成部分……是由大数据的可用性和机器的重大进步创造的……”,
“作者”: “R Agarwal、V Dhar - 信息系统研究,2014 年 - pubsonline.informs.org”
},
{
“位置”: “9”,
“标题”: “[BOEK][B] 商业数据科学:您需要了解的有关数据挖掘和数据分析思维的知识”,
“关联”: “https://books.google.com/books?hl=nl&lr=&id=EZAtAAAAQBAJ&oi=fnd&pg=PP1&dq=Data+Science&ots=ymVPQu_PyX&sig=ib-KaeUJ3EJPKDJs4LPsbyAU__Y”,
“说明”: “……数据科学,引导您了解从数据中提取有用的\n知识和商业价值所必需的“数据分析思维”……数据科学或成为崭露头角的数据科学家……”,
“作者”: “F 教务长,T 福塞特 - 2013 - books.google.com”
}
]

处理分页

在抓取 Google Scholar SERP 时,处理分页对于检索一组全面的结果至关重要。 Google Scholar 使用起始查询参数来管理分页结果。以下是修改后的脚本,其中包含分页处理以改进抓取体验:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 爬行基地 进口 抓取API
bs4 进口 美丽汤

DEF 获取html(API、网址):
# ...(不变)

DEF 解析谷歌学术(html_内容):
# ...(不变)

DEF 获取分页结果(api、base_url、最大页数):
所有结果 = []

页码 in 范围(0,最大页数):
开始 = 页码 * 10 # 每页显示10条结果
网址= f"{base_url}&开始={开始}"
html_content = fetch_html(api, url)

if html_内容:
结果详细信息 = parse_google_scholar(html_content)
all_results.extend(结果详细信息)

回报 所有结果

DEF ():
API_TOKEN = 'YOUR_CRAWLBASE_TOKEN'
爬行 API = 爬行 API({'令牌':API_TOKEN})

# 搜索查询示例
搜索查询= 《数据科学》

# 带有搜索查询的 Google Scholar 的示例 URL
基本网址 = f"https://scholar.google.com/scholar?q={搜索查询}"

# 使用 Crawlbase Crawling API 获取分页结果
结果 = fetch_pagination_results(crawling_api, base_url, max_pages=5)

# 进一步处理抓取的结果

if __名字__ == “__主要的__”:
主()

此修改后的脚本现在可以使用开始查询参数有效地处理分页,确保无缝检索所有相关结果。

将提取的数据保存在 SQLite 中

成功从 Google Scholar SERP 中提取数据后,下一步就是保存信息。为了持久存储抓取的数据,我们可以使用 SQLite 数据库。这是一个更新的脚本,它将结果保存到 SQLite 数据库中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
进口 sqlite3
bs4 进口 美丽汤
爬行基地 进口 抓取API

DEF 获取html(API、网址):
# ...(不变)

DEF 解析谷歌学术(html_内容):
# ...(不变)

DEF 获取分页结果(api、base_url、最大页数):
# ...(不变)

DEF 保存到数据库(结果):
# 连接到 SQLite 数据库
连接= sqlite3.connect('google_scholar_results.db')

# 创建游标对象与数据库交互
光标 = 连接.cursor()

# 创建一个表来存储结果
游标.执行('''
如果不存在则创建表 google_scholar_results (
位置整数,
标题文本,
链接文本,
描述文本,
作者文本
)
''')

# 将结果插入表中
导致 in 结果:
游标.执行('''
INSERT INTO google_scholar_results(位置、标题、链接、描述、作者)
值 (?, ?, ?, ?, ?)
''', (结果['位置'], 结果['标题'], 结果['关联'], 结果['描述'], 结果['作者']))

# 提交更改并关闭连接
连接提交()
连接.close()

DEF ():
API_TOKEN = 'YOUR_CRAWLBASE_TOKEN'
爬行 API = 爬行 API({'令牌':API_TOKEN})

# 搜索查询示例
搜索查询= 《数据科学》

# 带有搜索查询的 Google Scholar 的示例 URL
基本网址 = f"https://scholar.google.com/scholar?q={搜索查询}"

# 使用 Crawlbase Crawling API 获取分页结果
结果 = fetch_pagination_results(crawling_api, base_url, max_pages=5)

# 将提取的结果保存到SQLite数据库中
保存到数据库(结果)

if __名字__ == “__主要的__”:
主()

该脚本创建一个名为 google_scholar_results.db 以及一个用于存储提取结果的表。然后它将每个结果插入数据库。

google_scholar_results 表快照:

google_scholar_results 表快照

最后的思考

本指南分享了使用 Python 和 Crawlbase Crawling API 抓取 Google Scholar 搜索结果的基本技巧。当您探索网络抓取的世界时,请记住,这些技能不仅可以应用于 Google Scholar,还可以应用于其他各种平台。

探索下面的其他指南,以拓宽您的搜索引擎抓取专业知识。

📜 如何抓取 Google 搜索结果

📜 如何抓取 Bing 搜索结果

📜 如何抓取 Yandex 搜索结果

我们知道网络抓取可能会带来挑战,因此让您感受到支持非常重要。 因此,如果您需要进一步的指导或遇到任何障碍,请随时与我们联系。 我们的 敬业的团队 致力于在整个网络抓取工作中为您提供帮助。

常见问题解答(FAQ)

网络抓取的合法性取决于网站的服务条款。谷歌学术搜索的条款明确禁止出于商业目的进行抓取。审查并遵守服务条款和 robots.txt 任何网站的文件,以确保遵守法律和道德准则。始终优先考虑道德抓取行为,以保持积极的在线形象并避免潜在的法律问题。

问:如何使用 Python 抓取 Google Scholar 数据?

要使用 Python 抓取 Google Scholar 数据,您可以利用 Requests 库向搜索结果页面发出 HTTP 请求。然后,您可以利用 BeautifulSoup 解析 HTML 以提取相关信息,例如标题、链接、作者等。要获得更高效、更可靠的解决方案,您可以选择 Crawlbase 的 Crawling API,它简化了流程并提供了处理网页抓取复杂性的增强功能。

问:抓取 Google Scholar SERP 结果时常见的挑战有哪些?

抓取 Google Scholar SERP 结果可能会带来一些挑战,例如有效处理分页以检索全面的数据。此外,克服 IP 障碍、处理动态内容以及遵守道德抓取实践也是常见的障碍。通过实施适当的错误处理并利用 Crawlbase 的 Crawling API 等 Google Scraper,您可以更有效地应对这些挑战。

问:我可以出于研究目的分析和可视化抓取的 Google 学术搜索数据吗?

当然!抓取 Google Scholar 数据后,您可以将其保存在 SQLite 等数据库中,以便长期存储。随后,您可以使用 pandas 等 Python 库进行深入的数据分析,从而发现学术信息中的模式、趋势和相关性。 Matplotlib 或 Seaborn 等可视化工具进一步使您能够以视觉上引人注目的方式展示您的发现,从而帮助您的研究工作。