我有一个巨大的 URL 引用列表。它只是 URL,没有其他内容,采用 csv 或每行一个格式。是否有某种工具或实用程序可以用来遍历此列表以检索页面标题并将其格式化为 BibTeX?或者类似的东西?
我可以自己编写一个脚本,但如果已经有可用的脚本,我没时间重新发明轮子。这不是我第一次需要 BibTeX 参考资料的小助手,所以我认为我不是唯一一个需要的人。
就像是引用此文如果它可以将列表作为输入,那将是理想的。
答案1
这是我草草写出来的。
它不会赢得任何风格奖,但对于手头的任务来说已经足够了。
欢迎您使用、修改、分发,随便什么都可以。
如果您自己写的话,它至少可以为您节省一些时间。
#!/usr/bin/env python3
import sys
import requests,urllib3
from bs4 import BeautifulSoup
titles = []
count = 0
with open(sys.argv[-1]) as f:
urls = list(f)
urllib3.disable_warnings()
try:
for url in urls:
try:
html = requests.get(url=url,verify=False)
if html.status_code in (400,404):
raise requests.exceptions.InvalidURL()
except (requests.exceptions.InvalidURL):
continue
except (requests.exceptions.ConnectionError):
continue
soup = BeautifulSoup(html.text,'lxml')
try:
title = soup.find('title').string
titles.append(title)
print('@misc{'+str(count)+',')
print(' url = '+url,end='')
print(' title = '+title,end='\n}\n')
count += 1
except (AttributeError):
continue
except (KeyboardInterrupt):
print(); exit()