2021-03-11 python 批量查询论文期刊信息

import os
import time
import requests
import xlwt
from bs4 import BeautifulSoup
from tkinter.filedialog import askopenfilename
import numpy as np
import pandas as pd
from pandas import DataFrame
import requests
from urllib import parse,request
import json
path_and_name = askopenfilename(title='Two column data : title and ISSN', filetypes=[('CSV', '*.csv')],
                                 initialdir='D:\\')
data = pd.read_csv(path_and_name)
data=data.iloc[:,2]
#如果文件没有表头,还可以自己添加表头
workbook = xlwt.Workbook(encoding = 'utf-8')
worksheet = workbook.add_sheet('My Worksheet',cell_overwrite_ok=True)
worksheet.write(0, 0, '序号')
worksheet.write(0, 1, '期刊名称')
worksheet.write(0, 2, '类别')
worksheet.write(0, 3, '分区')
worksheet.write(0, 4, '影响因子')
# 开始查询
url = 'http://webapi.fenqubiao.com/api/journal'
for ii in range(len(data)):
    textmod1 = {"year": "2020", "abbr": "#"}
    textmod1['abbr'] = data[ii]
    textmod = parse.urlencode(textmod1)
    req = requests.get(url='%s%s%s' % (url,'?',textmod))
    result = json.loads(req.text)
    print(req.text)
    try:
        for index,jcr in enumerate(result['JCR']):
            print ("序号:",ii,"期刊名称:",result['Title'],"类别:%s,分区:%s"%(jcr["NameCN"],jcr["Section"]),"影响因子:",result['Indicator']['ImpactFactor'])
            worksheet.write(ii+1, 0,ii)
            worksheet.write(ii+1, 1, result['Title'])
            worksheet.write(ii+1, 2, jcr["NameCN"])
            worksheet.write(ii+1, 3, jcr["Section"])
            worksheet.write(ii+1, 4, result['Indicator']['ImpactFactor'])
    except KeyError:
        print("序号:", ii, "期刊名称:", "Non", "类别:Non,分区:Non, 影响因子:Non")
        worksheet.write(ii + 1, 0, ii)
        worksheet.write(ii + 1, 1, 'non')
        worksheet.write(ii + 1, 2, 'non')
        worksheet.write(ii + 1, 3, 'non')
        worksheet.write(ii + 1, 4, 'non')
        pass
        continue

workbook.save('D:\infos.xls')

猜你喜欢

转载自blog.csdn.net/you_us/article/details/114660575
今日推荐