python 爬虫自动获取 GB/T 7714 引用格式

ops/2025/1/15 10:26:55/

python__GBT_7714__0">python 自动获取 GB/T 7714 引用格式

参考:python爬虫实现自动获取论文GB 7714引用
介绍:从 Google Scholar 网站(具体为 https://xueshu.aigrogu.com/)收集文章信息,包括文章标题、链接和 GB/T 7714 引用格式。该代码接收一个文章标题列表,遍历列表中的每个标题,打开网页进行搜索,解析搜索结果页面,提取相关信息,并将提取到的 GB/T 7714 引用信息存储到文件 references.txt 中。

1. 准备步骤(需要安装的库)

  • selenium:用于自动化浏览器操作,可通过 pip install selenium 安装。
  • beautifulsoup4:用于解析 HTML 页面,可通过 pip install beautifulsoup4 安装。

2. 主要功能:

  • 搜索文章信息
    • 接收文章标题列表,使用 selenium 打开 https://xueshu.aigrogu.com/ 并输入文章标题进行搜索。
    • 等待搜索结果加载,使用 WebDriverWaittime.sleep 实现。
  • 提取信息
    • BeautifulSoup 解析页面,提取搜索结果中的文章标题和链接。
    • 点击引用按钮,提取 GB/T 7714 引用信息,将结果存储在字典中。
    • 只处理首个搜索结果。
  • 存储结果
    • 存储提取信息到 article_results 列表并关闭浏览器。
    • 将 GB/T 7714 引用信息写入 references.txt 文件。

3. 代码

python">from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
import timedef collect_scholar_info(article_titles):"""从 Google Scholar 收集文章信息。Args:article_title: 文章标题Returns:一个字典,包含文章信息,或者 None 如果找不到文章或发生错误。"""article_results = []for article_title in article_titles:options = webdriver.ChromeOptions()driver = webdriver.Chrome(options=options) driver.get("https://xueshu.aigrogu.com/")search_box = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "q")))search_box.send_keys(article_title)search_box.submit()time.sleep(3)page_source = driver.page_sourcesoup = BeautifulSoup(page_source, 'html.parser')results = soup.find_all('div', class_='gs_ri')first_result = Nonefor result in results:title = result.find('h3', class_='gs_rt').textlink = result.find('a')['href']first_result = {'title': title, 'link': link}cite_button = WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.gs_or_cit.gs_or_btn.gs_nph")))cite_button.click()time.sleep(2) new_page_source = driver.page_sourcenew_soup = BeautifulSoup(new_page_source, 'html.parser')time.sleep(2) try:gb_citation = new_soup.select_one('#gs_citt > table > tbody > tr:nth-child(1) > td:nth-child(2) > div').textfirst_result['citation_GBT'] = gb_citation.strip() if gb_citation else "未能找到 GB/T 7714 引用"except:first_result['citation_GBT'] = "未能找到 GB/T 7714 引用"breakarticle_results.append(first_result)driver.quit()return article_resultsif __name__ == '__main__':references = ["Deep learning", "Deep learning classification of land cover and crop types using remote sensing data", "Deep learning for time series classification: a review"] res = collect_scholar_info(references)output_file = "references.txt"try:with open(output_file, "w", encoding="utf-8") as file:for reference in res:try:file.write(reference['citation_GBT'] + "\n")except:file.write('未找到引用' + "\n")except Exception as e:print(f"发生错误:{e}")

此代码通过结合 seleniumBeautifulSoup 实现了从特定网站自动搜索文章信息并提取 GB/T 7714 引用信息的功能,可将结果存储到文件中。需注意 seleniumchromedriver 路径和等待时间的调整,以确保程序的稳定运行。


http://www.ppmy.cn/ops/150263.html

相关文章

vue 与 vue-json-viewer 实现 JSON 数据可视化

前言 接口的调试和测试是确保系统稳定性的重要步骤。为了让开发人员和测试人员能够直观地查看接口返回的 JSON 数据,使用合适的工具至关重要。vue-json-viewer 插件为 vue 开发者提供了一个简单而强大的解决方案。本文将详细介绍如何在 vue 项目中使用该插件&#x…

QT 键值对集合QMap

在QT中&#xff0c;可以使用QMap作为键值对的集合。QMap是Qt的一个模板类&#xff0c;它存储了键值对&#xff0c;并且可以通过键来快速查找值。 导入 #include <QMap> 以下是一些使用QMap的方法&#xff1a; 1.创建并初始化一个 QMap<int, QString> UserDepa…

[3D] 3D雷达天眼监控系统:打造智能城市的安全防线

随着科技的飞速发展&#xff0c;各种智能监控技术不断涌现&#xff0c;为社会的安全保障提供了强大的支持。3D雷达天眼监控系统&#xff0c;作为一种创新的安防监控技术&#xff0c;凭借其强大的环境感知能力和精准的目标探测功能&#xff0c;逐渐成为智能城市、边境防控、交通…

深入理解循环神经网络(RNN):原理、应用与挑战

引言 在深度学习的众多模型中&#xff0c;循环神经网络&#xff08;RNN&#xff09;因其对序列数据处理的特性而备受关注。无论是自然语言处理、时间序列预测&#xff0c;还是语音识别&#xff0c;RNN都展现出了强大的能力。然而&#xff0c;RNN的内部机制及其在实际应用中的优…

MongoDB如何使用

1.简单介绍 MongoDB是一个开源、高性能、无模式的文档型数据库&#xff0c;当初的设计就是用于简化开发和方便扩展&#xff0c;是NoSQL数据库产品中的一种。是最 像关系型数据库&#xff08;MySQL&#xff09;的非关系型数据库。 MongoDB是一个基于分布式文件存储的数据库由C语…

在 Azure 100 学生订阅中新建一台 Ubuntu VPS,并通过 Docker 部署 Nginx 服务器

今天来和大家分享一下如何在 Azure 100 学生订阅中创建一台 Ubuntu VPS&#xff0c;并在其上通过 Docker 部署 Nginx 服务器。在这个过程中&#xff0c;我们将一步步走过每一个细节&#xff0c;希望能帮助到大家。 Docker 和 Nginx 简介 Docker 是一个开源的容器化平台&#…

34_Lua概述与环境安装指南

从这个模块开始带领带领大家来学习Lua相关的知识。有小伙伴可能会问了问什么要学习Lua?因为在后续的模块中我们需要写Redis脚本、Web开发中编写Nginx脚本等,这些都需要通过Lua语言来实现,因此对Lua的语法我们需要简单了解和掌握必要的知识。 1 Lua概述 1.1 Lua介绍 Lua诞…

gateway worker 分布式

有三个文件start_register.php&#xff0c;start_gateway.php&#xff0c;start_businessworker.php&#xff0c; 一、start_register.php &#xff08;1&#xff09;是用于通讯的&#xff0c;注册地址的&#xff1b; 二、start_gateway.php &#xff08;1&#xff09;用于跟…