2. 编写采集程序根据WoS元数据中的DOI号链接到原始网站获取该篇论文的全文PDF并保存到本地同时将本地保存路径及文件名、原始网站上PDF全文的URL、 HTML全文如有的URL、论文页URL、DOI号、题名等数据项写入Excel
以下是一个示例代码,用于根据DOI号采集论文全文PDF并保存到本地,并将相关数据写入Excel文件。
import requests
import os
import openpyxl
# 设置保存路径
save_dir = "pdfs/"
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 读取Excel文件
workbook = openpyxl.load_workbook("metadata.xlsx")
worksheet = workbook.active
# 获取数据项所在的列号
columns = {}
for col in range(1, worksheet.max_column + 1):
header = worksheet.cell(row=1, column=col).value
columns[header] = col
# 遍历每一行,获取DOI号并采集相关数据
for row in range(2, worksheet.max_row + 1):
doi = worksheet.cell(row=row, column=columns["DOI"]).value
pdf_url = worksheet.cell(row=row, column=columns["PDF全文URL"]).value
html_url = worksheet.cell(row=row, column=columns["HTML全文URL"]).value
title = worksheet.cell(row=row, column=columns["题名"]).value
# 下载PDF文件
if pdf_url:
response = requests.get(pdf_url)
if response.status_code == 200:
file_path = os.path.join(save_dir, f"{doi}.pdf")
with open(file_path, "wb") as f:
f.write(response.content)
worksheet.cell(row=row, column=columns["本地保存路径及文件名"]).value = file_path
# 更新其他数据项
worksheet.cell(row=row, column=columns["原始网站上PDF全文的URL"]).value = pdf_url
worksheet.cell(row=row, column=columns["HTML全文URL"]).value = html_url
worksheet.cell(row=row, column=columns["论文页URL"]).value = f"https://doi.org/{doi}"
# 保存Excel文件
workbook.save("metadata_updated.xlsx")
请注意,上述代码仅作为示例,具体实现可能需要根据实际情况进行调整
原文地址: https://www.cveoy.top/t/topic/iCmX 著作权归作者所有。请勿转载和采集!