如何自动为论文的参考文献创建 .bib 文件?

如何自动为论文的参考文献创建 .bib 文件?

我有一篇已发表的论文,打算将其用于我的毕业论文。我通常使用 Mendeley 创建 .bib 文件。但是,我想知道是否有一种聪明而简单的方法来创建此 .bib 文件,只需提供论文或论文的 doi,它就会给我参考文献的 .bib 文件?

例如我想要一个包含本文参考文献的.bib文件: https://www.cambridge.org/core/journals/microscopy-and-microanalysis/article/estimating-step-heights-from-topdown-sem-images/ECA77A258DAA20A73CA510AADFFD4F08

答案1

它不是 TeX,但是我使用这个 python 3 代码来做这样的事情:

from isbnlib import meta
from isbnlib.registry import bibformatters
import sys
import urllib.request
from urllib.error import HTTPError
import time

### PARA DOI
#BASE_URL = 'http://dx.doi.org/'
BASE_URL = 'https://www.doi.org/'

ListaDOI = ['10.1119/1.5124814',
            '10.1103/PhysRevB.100.245121',
            '10.1103/PhysRevB.100.224507',
            '10.1103/PhysRevE.100.052303',
            '10.1103/PhysRevFluids.4.124002',
            '10.1103/PhysRevD.100.126011',
            '10.1103/PhysRevA.100.052322']

### PARA ISBN
SERVICE = 'openl'
getInfoISBN = bibformatters['bibtex']

ListaISBN = []


#timestamp=time.strftime("%d-%m-%Y-%H%M%S")
timestamp=time.strftime("%d-%m-%Y-%H")
filename='bibliography-'+timestamp+'.txt'
g=open(filename,'a')

for doi in ListaDOI:
    url = BASE_URL + doi
    req = urllib.request.Request(url)
    req.add_header('Accept', 'application/x-bibtex')
    time.sleep(2)
    try:
        with urllib.request.urlopen(req) as f:
            bibtexDOI = f.read().decode()
        print(bibtexDOI)
        g.write('\n' + bibtexDOI + '\n\n')

    except HTTPError as e:
        if e.code == 404:
            print('\n DOI {} nao encontrado. DOI not found.\n'.format(doi))
            g.write('DOI: {}'.format(doi)+' não encontrado. Not found.\n\n')
        else:
            print('Serviço indisponível. Service unavailable.')
            sys.exit(1)

for isbn in ListaISBN:
    try:
        bibtexISBN = getInfoISBN(meta(isbn, SERVICE))
        print(bibtexISBN)
        g.write('\n' + bibtexISBN + '\n\n')

    except:
        print('\n ISBN {} nao encontrado. ISBN not found.\n'.format(isbn))
        g.write('ISBN: {}'.format(isbn)+' não encontrado. Not found.\n\n')
g.close()

它使用该网站http://dx.doi.org/来获取信息。因此,您可以在“ListaDOI”(您需要多少个)中列出 doi 编号,然后使用 python 运行。它将显示 bib 条目并将其保存到“bibliography.txt”中。

编辑:添加了 isbn 搜索。它使用特定的 python 库,即 isbnlib。将 isbn 放入“ListaISBN”的方式与放入“ListaDOI”的方式相同。

相关内容