我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python如何实现搜索Google Scholar论文信息

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python如何实现搜索Google Scholar论文信息

本篇内容介绍了“Python如何实现搜索Google Scholar论文信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

示例数据

Python如何实现搜索Google Scholar论文信息

示例代码

import requestsfrom bs4 import BeautifulSoupfrom tqdm import tqdmfrom pybtex.database import BibliographyData, Entryfrom pybtex.database.input import bibteximport pandas as pdimport timeimport json import random  def search_doi(doi):    '''根据doi查论文详细信息'''    url = f'https://api.crossref.org/works/{doi}'    response = requests.get(url)    result = None    if response.status_code == 200:        result = response.json()['message']    else:        print('Error occurred')    return result # doi = 'https://dl.acm.org/doi/abs/10.1145/3394486.3403237'# result = search_doi(doi)# print(f"Title: {result['title'][0]}:{result['subtitle'][0]}")# print(f"Author(s): {', '.join(author['given'] + ' ' + author['family'] for author in result['author'])}")# print(f"Journal: {result['container-title'][0]}")# print(f"Publication Date: {result['published-print']['date-parts'][0][0]}")  def search_cite(atid):    '''根据atid查cite'''    url = f'https://scholar.google.com/scholar?q=info:{atid}:scholar.google.com/&output=cite&scirp=8&hl=zh-CN'    resp = requests.get(url)    soup = BeautifulSoup(resp.text, 'lxml')    result = {}    for item in soup.find_all('tr'):        cith = item.find('th', class_='gs_cith').getText()        citr = item.find('div', class_='gs_citr').getText()        result[cith] = citr    return result # result = search_cite('_goqYZv1zjMJ')# print(result)   # 更改节点配置def change_clash_node(node_name=None):    # Clash API的URL和密码    url = 'http://127.0.0.1:15043/proxies/????国外流量'    password = 'ee735f4e-59c6-4d60-a2ad-aabd075badb2'    local_node_name = ['香港1-IEPL-倍率1.0', '香港2-IEPL-倍率1.0', '香港3-IEPL-倍率1.0',                        '台湾1-IEPL-倍率1.0', '台湾2-IEPL-倍率1.0', '台湾3-IEPL-倍率1.0',                       '新加坡1-IEPL-倍率1.0', '新加坡2-IEPL-倍率1.0', '新加坡3-IEPL-倍率1.0'                       ]    node_name = node_name or random.choice(local_node_name)    print(f'当前选择节点名称: {node_name}')        headers = {'Authorization': password}    data = {        'name': 'Rule',        'type': 'Selector',        'now': node_name    }    response = requests.put(url, headers=headers, json=data)    if response.status_code == 200:        print('节点已更改为:', node_name)    else:        print('更改节点时出错:', response.text) # 更改节点为my_node# change_clash_node()   def proxy_requests(url):    proxies = {        'http': 'socks5://127.0.0.1:7890',        'https': 'socks5://127.0.0.1:7890'    }    return requests.get(url, proxies=proxies)  def search(title='GNN', start=0):    url = f'https://scholar.google.com/scholar?start={start}&q=allintitle:+{title}&hl=zh-CN&as_sdt=0,5'    resp = proxy_requests(url)    soup = BeautifulSoup(resp.text, 'lxml')    try:        papers_item = soup.find(id='gs_res_ccl_mid').find_all('div', class_='gs_scl')    except:        print(soup)        if 'captcha-form' in soup:            return -1    papers_info = []    for paper in papers_item:        publisher = paper.find('div', class_='gs_or_ggsm').getText().split()[1].split('.')[0]        href = paper.find('h4', class_='gs_rt').find('a').get('href')        title = paper.find('h4', class_='gs_rt').find('a').getText()        detail = paper.find('div', class_='gs_ri').find('div', class_='gs_a').getText()        year = detail.split(',')[-1].strip()[:4]                # atid = paper.find('h4', class_='gs_rt').find('a').get('data-clk-atid')        # cite_info = search_cite(atid)['MLA']        # cite_info_filter = list(filter(lambda x:x, map(lambda x:x.strip().strip('"').strip(), cite_info.strip().split('.'))))        # author, title, publisher, year = cite_info_filter                papers_info.append({'title':title, 'year':year, 'publisher':publisher, 'href':href})    return papers_info    index_start = 0index_end = 500index_gap = 10papers_store = []bar = tqdm(total=index_end-index_start, desc=f'From {index_start} to {index_end}')# for start in range(index_start, index_end, index_gap):while index_start < index_end:    try:        papers_info = search(title='GNN', start=index_start)        if papers_info == -1:            print('需要验证码,更换节点后2秒内重试')            change_clash_node()            time.sleep(2)            continue        papers_store.extend(papers_info)    except AttributeError as e:        print(e)        break            index_start += index_gap    bar.update(index_gap)    bar.refresh()    time.sleep(0.1)bar.close() df = pd.DataFrame(papers_info)print(df)df.to_csv('data.csv', index=False)

“Python如何实现搜索Google Scholar论文信息”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python如何实现搜索Google Scholar论文信息

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python如何实现搜索Google Scholar论文信息

本篇内容介绍了“Python如何实现搜索Google Scholar论文信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!示例数据示例代码i
2023-07-05

Python实现搜索GoogleScholar论文信息的示例代码

这篇文章主要为大家详细介绍了如何利用Python实现搜索GoogleScholar论文信息的功能,文中的示例代码讲解详细,需要的可以参考一下
2023-03-06

python实现搜索本地文件信息写入文件的方法

本文实例讲述了python实现搜索本地文件信息写入文件的方法。分享给大家供大家参考,具体如下: 主要功能: 在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件,然后把搜索出来的信息(相关文件的绝对路径),存放到用户
2022-06-04

php如何实现人员信息搜索的功能

本篇内容介绍了“php如何实现人员信息搜索的功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php实现人员信息搜索的功能的方法:1、创建c
2023-06-22

linux如何实现文件搜索

这篇文章主要介绍linux如何实现文件搜索,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、linux中包含大量的文件,对于文件查找,linux提供了find命令。find是一个非常有效的工具,它可以遍历目标目录甚至
2023-06-09

android如何实现仿微信通讯录搜索

这篇文章将为大家详细讲解有关android如何实现仿微信通讯录搜索,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一:先看效果图字母索引搜索匹配二:功能分析1:汉字转拼音通讯录汉字转拼音(首个字符当考虑姓氏
2023-05-30

SQL Server如何实现全文搜索查询

本篇内容介绍了“SQL Server如何实现全文搜索查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、概述全文索引在表中包括一个或多个基
2023-07-05

微信小程序如何实现顶部搜索框

这篇文章主要介绍“微信小程序如何实现顶部搜索框”,在日常操作中,相信很多人在微信小程序如何实现顶部搜索框问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序如何实现顶部搜索框”的疑惑有所帮助!接下来,请跟
2023-06-30

python基于搜索引擎如何实现文章查重功能

这篇文章给大家分享的是有关python基于搜索引擎如何实现文章查重功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫
2023-06-14

Android中如何实现清空搜索框的文字

需求:项目中的有关搜索的地方,加上清空文字的功能,目的是为了增加用户体验,使用户删除文本更加快捷 解决过程:开始的时候感觉这个东西不太好实现,主要就是布局的问题,可能是开始顾虑的太多了,再加上当时产品催的不太紧,而且这个功能也不是必须实现的
2022-06-06

VBS如何调用WMI实现搜索硬盘mp3文件

这篇文章给大家分享的是有关VBS如何调用WMI实现搜索硬盘mp3文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 代码如下:strComputer = "." Set objWMIService = GetOb
2023-06-08

Python如何实现信息管理系统

本文小编为大家详细介绍“Python如何实现信息管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现信息管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。具体代码如下"""项目名称 =
2023-06-30

Spring Boot2.0整合ES5如何实现文章内容搜索

小编给大家分享一下Spring Boot2.0整合ES5如何实现文章内容搜索,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、文章内容搜索思路实现思路很简单:基于
2023-05-30

Spring Boot整合Elasticsearch如何实现全文搜索引擎

这篇文章给大家分享的是有关Spring Boot整合Elasticsearch如何实现全文搜索引擎的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。简单说,ElasticSearch(简称 ES)是搜索引擎,是结构化
2023-05-30

如何利用Sphinx实现高效的全文搜索?(Sphinx如何助力快速全文检索?)

Sphinx是一款开源全文搜索引擎,可提供快速的全文检索体验。它通过索引生成、快速查询和高级功能(如模糊搜索、同义词和地理搜索)实现高效的搜索。企业可以通过将其集成到Web框架、数据库或通过API,轻松实施Sphinx。Sphinx的优点包括快速响应、相关性高的结果、可扩展性和成本效益,使其成为提升网站和应用程序搜索功能的理想选择。
如何利用Sphinx实现高效的全文搜索?(Sphinx如何助力快速全文检索?)
2024-04-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录