利用python脚本根据DOI号自动查询参考文献信息

背景:

       某人写了一篇论文,需要将参考文献信息内容查询出来,第一步,就是利用人名及年份查询所引用的文献或者文章及文章的doi,如果没用,也可也复制文章在百度里面查找,

利用python脚本根据DOI号自动查询参考文献信息_第1张图片

第二步,拿到doi号在网址里面查询

利用python脚本根据DOI号自动查询参考文献信息_第2张图片

 

如此往复,如果文章引用超过100jiao多,如此重重,无聊,而且易出错,

接下来,我们利用python 编写脚步,自动查询,然后把值保存在txt里面

步骤:

第一步:doi号是和人名,年份等引用信息混合在一起的,需要先将值提取出来,利用excel

因为有些是http:doi/org/ 有些直接是doi,在excle中直接查找替换,*org 替换 *doi   再替换 *doi/ 

拿到doi号,

利用python脚本根据DOI号自动查询参考文献信息_第3张图片

第二部,需要将其按格式保存再excle中,文本格式,不然数字易变成浮点数

利用python脚本根据DOI号自动查询参考文献信息_第4张图片

第三部,利用python 读取excel

# coding:utf-8
import xlrd
class ExcelUtil():
    def __init__(self, excelPath, sheetName):
        self.data = xlrd.open_workbook(excelPath)
        self.table = self.data.sheet_by_name(sheetName)
        # 获取第一行作为key值
        self.keys = self.table.row_values(0)
        # 获取总行数
        self.rowNum = self.table.nrows
        # 获取总列数
        self.colNum = self.table.ncols

    def dict_data(self):
        if self.rowNum <= 1:
            print("总行数小于1")
        else:
            r = []
            j=1
            for i in range(self.rowNum-1):
                s = {}
                # 从第二行取对应values值
                values = self.table.row_values(j)
                for x in range(self.colNum):
                    s[self.keys[x]] = values[x]
                r.append(s)
                j+=1
            return r

if __name__ == "__main__":
    filepath = "D:\\test\\web-project\\5ke\\testdata.xlsx"
    sheetName = "Sheet1"
    data = ExcelUtil(filepath, sheetName)
    print(data.dict_data())

第四步:

刚开始利用接口试试,但是返回值不正确,改变思路,利用网页直接取

 

利用python脚本根据DOI号自动查询参考文献信息_第5张图片

 

第五步:查看生成的txt文档

利用python脚本根据DOI号自动查询参考文献信息_第6张图片

利用python脚本根据DOI号自动查询参考文献信息_第7张图片

大功告成

 

需注意点:刚开始写入txt时,报gbk不能写入,最后后面加了ecoding=utf-8

 因为每次都取doi号,所以想到需要用ddt模式驱动

参考文章:https://www.cnblogs.com/zhongyehai/p/9560785.html

你可能感兴趣的:(python)