2009-05-26 20 views
13

Ich möchte ein Skript schreiben, um heruntergeladene Dokumente mit ihren Titeln automatisch umzubenennen, ich frage mich, ob es irgendwelche Bibliotheken oder Tricks gibt, die ich benutzen kann? Die PDFs werden alle von TeX erzeugt und sollten einige "formale" Strukturen haben.Titel aus PDF-Dateien extrahieren?

+0

Wo Sie die PDFs Titel aus zu tun bekommen? Müssen diese Informationen aus den PDF-Dokumenteigenschaften oder aus den PDF-Inhalten extrahiert werden oder extrahieren Sie diese Informationen aus einer anderen Quelle? – Rowan

+0

Mögliches Duplikat [Extrahieren von Informationen aus PDF-Dateien von Forschungsarbeiten] (http://stackoverflow.com/questions/1813427/extracting-information-from-pdfs-of-research-papers) – Seanny123

Antwort

13

Sie könnten versuchen, pyPdf und this example zu verwenden.

zum Beispiel:

from pyPdf import PdfFileWriter, PdfFileReader 

def get_pdf_title(pdf_file_path): 
    with open(pdf_file_path) as f: 
     pdf_reader = PdfFileReader(f) 
     return pdf_reader.getDocumentInfo().title 

title = get_pdf_title('/home/user/Desktop/my.pdf') 
+0

für mich 'title = untitled' – ar2015

+0

pyPdf .utils.PdfReadError: EOF-Markierung nicht gefunden – Victor

2

würde ich wahrscheinlich mit Perl starten (da es immer das erste, was ich erreichen für). Es gibt several modules for handling PDFs. Wenn Sie eine konsistente Struktur haben, können Sie Regex verwenden, um die Titel zu erfassen.

0

all diesen Papieren sind von arXiv Unter der Annahme, könnten Sie stattdessen die arXiv-ID extrahieren (ich würde vermuten, dass die Suche nach "arXiv:" im PDF-Text würde die ID immer als ersten Treffer anzeigen.

Sobald Sie die arXiv Referenznummer haben (und haben eine pip install arxiv getan), können Sie den Titel erhalten mit

paper_ref = '1501.00730' 
arxiv.query(id_list=[paper_ref])[0].title