Python自动化小技巧12——根据论文题目自动导出参考文献格式

这篇具有很好参考价值的文章主要介绍了Python自动化小技巧12——根据论文题目自动导出参考文献格式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

案例背景

在写论文的时候,弄参考文献格式也很麻烦,不可能手打人名题目期刊名称年月日卷号页码这些,我们一般都是使用系统自动导出的格式复制粘贴就行。中国知网可以直接导出论文的格式,但是知网基本只有中文的论文,英文的论文还有很多sci的库里面的论文都没有。

我们一般看英文论文都是国外的期刊库,网站都是各种来源的,想一一导出论文的参考文献格式需要一个一个去找......有的还不一定找得到,而且像science Direct网站导出来还是一个txt文件,都不能直接用.......

有没有办法,只需要论文的题目,就能输出参考文献格式呢?

有的,谷歌学术就可以做到,中文英文的论文都能导出参考文献格式,复制论文题目进去,然后点出引用就能复制粘贴了。

但是这个过程是很枯燥的,复制标题,搜索,点击引用,复制粘贴...反复循环。

但是这种重复性的劳动交给Python脚本是很棒,很便捷的。下面来实现它。


代码思路

先获取论文题目,放到一个列表里面。然后使用selenium库去进行模拟点击,得到引用文本,最后写入word就行。


代码实现

获取论文题目1

第一个方法,这里可以使用bat脚本,不需要python环境就能运行的。

首先和你所有的参考文献一个文件夹目录下,新建一个txt文件,写入下面代码:

dir *.* /b> 文本档案.txt

然后保存退出,右键这个文本文件,重命名,修改文件后缀。从 'txt' 改为 ‘bat’ 。这样它就变成了脚本文件。我把它名称命名为‘’目录‘

然后双击运行一下,就会多出一个文本档案的txt文件。里面就有这个文件夹下所有的文件名称。

Python自动化小技巧12——根据论文题目自动导出参考文献格式          Python自动化小技巧12——根据论文题目自动导出参考文献格式

 当然,这是对你文件名称是论文的名称才能使用。如果你论文的名称是乱码那就不行了....可以将每个文件重命名为论文名称然后再使用这个脚本。

 文章来源地址https://www.toymoban.com/news/detail-425201.html


获取论文题目2

第二个方法,针对Python自动化小技巧12——根据论文题目自动导出参考文献格式这个库上面的导出来的txt文本去获取论文名称,我目前看英文论文就是这样用的。

导出的一个论文参考文献会给这样一个txt文件:

Python自动化小技巧12——根据论文题目自动导出参考文献格式

 我们可以看到第一行是作者们名字,第二行就是论文名称了。

我们遍历所有的下载的这个txt文件(在science Direct下载论文的时候记得顺便把这个引用导出txt文件也下载了,不然后面再找很麻烦),然后取出第二行论文名称,装在一个列表里面就行。

import numpy as np
import pandas as pd
import glob

files=glob.glob('*.txt')
paper_names=[]
for file in files:
    with open(file, 'r',encoding='utf-8') as f:
        context = f.readlines()
        context=[ con.replace('\n','') for con in context]
        paper_names.append(context[1])
        print(context[1])

Python自动化小技巧12——根据论文题目自动导出参考文献格式

可以看到我参考文献目录下面的所有论文名称都提取出来了。装在paper_names这个列表中


模拟点击获取参考文献格式 

导入selenium库

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

from bs4 import BeautifulSoup
import os
from time import sleep

模拟浏览器点击,这里使用的是Xpath路径去定位网页文件元素。

然后使用的是edge的浏览器驱动,使用这段代码前还需要下载一个edge 的驱动,与代码文件放在同一目录下,下载链接在这:

Microsoft Edge WebDriver - Microsoft Edge Developer

根据电脑版本下,一般Windows下这个64就行:

Python自动化小技巧12——根据论文题目自动导出参考文献格式

 

模拟点击运行 代码如下:(每一步的原理就不讲了....没爬虫基础可能也看不懂)

ckwx=[]
from selenium.webdriver import Edge
from selenium.webdriver.edge.options import Options as EdgeOptions

driver = webdriver.Edge("msedgedriver")
url = "https://xs.scqylaw.com/"
driver.implicitly_wait(10)
driver.get(url)
sleep(3)

code=driver.find_element(By.XPATH,'//*[@id="lst-ib"]')
code.send_keys('LSTM')
driver.find_element(By.XPATH,'/html/body/div[1]/center/div[3]/form/div[2]/input[1]').click()

#网页转换,将网页转换到所需的地方
win =driver.window_handles
driver.switch_to.window(win[1])
sleep(2)

driver.find_element(By.XPATH,'//*[@id="mainshadow"]/div/div/input').send_keys('gfsoso')
sleep(1)
driver.find_element(By.XPATH,'//*[@id="mainshadow"]/div/div/a').click()


for i in range(len(paper_names)):
    code=driver.find_element(By.XPATH,'//*[@id="gs_hdr_tsi"]')
    code.clear()
    code.send_keys(paper_names[i])
    driver.find_element(By.XPATH,'//*[@id="gs_hdr_tsb"]').click()
    
    sleep(1)
    driver.find_element(By.XPATH,'//*[@id="gs_res_ccl_mid"]/div[1]/div[2]/div[3]/a[2]').click()
    sleep(1)
    
    yy=driver.find_element(By.XPATH,'//*[@id="gs_citt"]/table/tbody/tr[1]/td/div')
    ckwx.append(yy.text)
    driver.find_element(By.XPATH,'//*[@id="gs_cit-x"]').click()
    sleep(1)
driver.quit()

现在参考文献的格式都提取出来了,装在了ckwx这个列表中,打印查看:

Python自动化小技巧12——根据论文题目自动导出参考文献格式


 

写入word文档

用docx这个包就行:(下载命令——pip install python-docx)

import docx
from docx import shared
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
 
doc=docx.Document() #创建内存中的word文档对象
doc.styles['Normal'].font.name = 'Times New Roman'
doc.styles['Normal'].font.size = shared.Pt(9)
for i in range(len(ckwx)):
    doc.add_paragraph(f"[{i+1}] {ckwx[i]}")

doc.save("参考文献汇总.docx") #保存才能看到结果

最后生成一个word,查看一下效果还不错:

Python自动化小技巧12——根据论文题目自动导出参考文献格式

 

到了这里,关于Python自动化小技巧12——根据论文题目自动导出参考文献格式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python自动化小技巧21——实现PDF转word功能(程序制作)

    案例背景 为什么这个年代PDF转word,某wps居然还要收费.....很多软件都可以实现这个功能,但是效果都有好有坏,而且有的还付费,很麻烦。 那就用python实现这个功能吧,然后把代码打包为.exe的程序,这样随便在哪个电脑上都能运行,给那些没有python环境的人一个便利。 代码

    2024年02月11日
    浏览(50)
  • 【playwright】新一代自动化测试神器playwright+python系列课程12_playwright_frame中元素定位

    网页中经常嵌套frame框架,在网页中标签为iframe或frame的元素就是frame框架 如图 或者 在frame框架中的元素时不能直接定位的,selenium处理frame,需要切换到frame中,然后再切换出来,操作比较麻烦,那么playwright对于frame的操作会不会更加简单呢? 答案是肯定的,playwright不需要切

    2024年01月18日
    浏览(45)
  • GO项目自动化-根据库表字段自动生成API

    一个项目开发离不开数据库的增删改查,API功能也基本围绕着表的CRUD:增加(Create)、读取(Read)、更新(Update)和删除(Delete)。每个表写一个CRUD,方法都差不多,逻辑也非常相似。 那么有没有可能根据表结构直接自动化生成各个表的CRUD呢? 当然可以,前几篇文章已经介绍了gola

    2024年01月15日
    浏览(43)
  • 100天精通Python丨办公效率篇 —— 12、Python自动化操作 office-word(word转pdf、转docx、段落、表格、标题、页面、格式)

    本文收录于 《100天精通Python专栏 - 快速入门到黑科技》专栏 ,是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造。 基础知识篇以理论知识为主 ,旨在帮助没有语言基础的小伙伴,学习我整理成体系的精华知识,快速入门构建起知识框架; 黑科技应用篇

    2023年04月18日
    浏览(55)
  • App自动化测试:高级控件交互技巧

    简介 APP 的控件元素不仅涵盖了基础用户界面操作,还包括用户与应用程序中更复杂、功能丰富的空间之间的互动。这种交互远不止于简单的按钮或输入框。通过借助 Appium 的 Actions,能够完成对应用程序进行手势识别的交互。这意味着可以通过各种手势,如滑动、缩放、长按

    2024年04月10日
    浏览(53)
  • Selenium编写自动化用例的8种技巧

    在开始自动化时,您可能会遇到各种可能包含在自动化代码中的方法,技术,框架和工具。有时,与提供更好的灵活性或解决问题的更好方法相比,这种多功能性导致代码更加复杂。在编写自动化代码时,重要的是我们能够清楚地描述自动化测试的目标以及我们如何实现它。

    2024年02月01日
    浏览(49)
  • Selenium解决滑块验证问题:自动化与技巧

    滑块验证是一种常见的人机验证机制,用于识别和防止自动化程序的访问。在爬虫和自动化测试中,我们经常面临需要处理滑块验证的情况。本文将介绍如何使用 Selenium 库处理滑块验证问题。 一、安装 Selenium 首先,确保你已经安装了 Selenium。你可以使用以下命令通过 pip 安

    2024年01月25日
    浏览(55)
  • web自动化测试入门篇07 ——— 用例编写技巧

        😏 作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡 主页地址:【Austin_zhai】 🙆 目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。 💎 声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问

    2023年04月25日
    浏览(46)
  • web自动化测试入门篇06 —— 元素定位进阶技巧

      😏 作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡 主页地址:【Austin_zhai】 🙆 目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。 💎 声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题

    2024年02月05日
    浏览(49)
  • 软件测试高频面试题(2023全新版)你必须掌握的面试技巧,包含HR面试、基础面试、JMeter面试、Postman面试、Python面试、自动化化面试、安全性能面试题

    1.1 面试技巧 💡 告诫给位小伙伴,技巧不是投机取巧,起到辅助作用,技术面主要看实力,这里是基于实力之上的技巧 1.2 面试形式 😄 面试形式分为技术面和 HR 面,技术面就是考察你的专业技术水平的,HR 面主要看你这个人的综合素质以及家庭情况符不符合公司要求(一般

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包