立即登录

ps脚本将文件载入堆栈 Python自动化小技巧12——根据论文题目自动导出参考文献格式

11/28 00:10:56

ps脚本将文件载入堆栈 Python自动化小技巧12——根据论文题目自动导出参考文献格式

案例背景

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

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

有没有办法,只需要论文的题目ps脚本将文件载入堆栈,就能输出参考文献格式呢?

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

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

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

代码思路

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

代码实现 获取论文题目1

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

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

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

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

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

ps载入画笔文件_ps脚本将文件载入堆栈_将文件载入堆栈

将文件载入堆栈_ps脚本将文件载入堆栈_ps载入画笔文件

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

获取论文题目2

将文件载入堆栈_ps载入画笔文件_ps脚本将文件载入堆栈

第二个方法,针对

这个库上面的导出来的txt文本去获取论文名称,我目前看英文论文就是这样用的。

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

将文件载入堆栈_ps脚本将文件载入堆栈_ps载入画笔文件

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

我们遍历所有的下载的这个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])

ps脚本将文件载入堆栈_将文件载入堆栈_ps载入画笔文件

ps载入画笔文件_ps脚本将文件载入堆栈_将文件载入堆栈

可以看到我参考文献目录下面的所有论文名称都提取出来了。装在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就行:

ps脚本将文件载入堆栈_ps载入画笔文件_将文件载入堆栈

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

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)

ps脚本将文件载入堆栈_ps载入画笔文件_将文件载入堆栈

ps载入画笔文件_将文件载入堆栈_ps脚本将文件载入堆栈

现在参考文献的格式都提取出来了ps脚本将文件载入堆栈,装在了ckwx这个列表中,打印查看:

将文件载入堆栈_ps载入画笔文件_ps脚本将文件载入堆栈

写入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,查看一下效果还不错:

ps脚本将文件载入堆栈_ps载入画笔文件_将文件载入堆栈

来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

最新资讯