38132e6511d59624ee853501882863e89f0e2394
doi2ris
Python-Skript, das eine Liste von Literaturquellen einliest, DOIs extrahiert, bibliographische Metadaten via Crossref (Fallback DataCite) ergänzt und eine Zotero-kompatible .ris-Datei erzeugt.
Voraussetzungen
pip install requests
Verwendung
python doi2ris.py quellen.txt -o bibliothek.ris --email du@example.com --workers 8
Argumente
| Argument | Beschreibung |
|---|---|
input |
Eingabedatei, eine Quelle pro Zeile |
-o/--output |
RIS-Ausgabepfad (Default library.ris) |
--email |
Mailadresse für Crossref Polite-Pool (empfohlen, beschleunigt Antworten) |
--workers |
Anzahl paralleler Requests (Default 8) |
--cache |
JSON-Cache, damit Wiederholungsläufe instantan laufen |
--unresolved |
Logdatei für Zeilen ohne erfolgreiche Auflösung |
-v/--verbose |
Debug-Logging |
Eingabeformate
Pro Zeile beliebig — das Skript zieht via Regex die DOI heraus:
10.1038/s41586-020-2649-2
https://doi.org/10.1109/5.771073
Coble, R. L. (1961). Sintering crystalline solids ... doi:10.1063/1.1736107
@article{smith2020, doi = {10.1000/xyz123}, ...}
Zeilen ohne DOI werden per Crossref-Titelsuche aufgelöst (Top-Treffer ab
Score 40). Klappt das nicht, landet die Zeile in unresolved.txt.
Zotero-Import
In Zotero: Datei → Importieren … → RIS-Datei wählen. Die Felder werden korrekt gemappt (Autor:innen, Journal, Band/Heft, Seiten, DOI, Abstract, Schlagwörter, ISSN/ISBN, URL).
Hinweise
- Crossref erlaubt großzügige Anfragen, im Polite-Pool (mit
--email) bekommt man bevorzugte Antwortzeiten. Auch ohne Mail funktioniert es. - 5-fach Retry mit exponentiellem Backoff für HTTP 429/5xx ist eingebaut.
- Der lokale
.doi_cache.jsonmacht erneute Läufe verlustfrei reproduzierbar. - Bei 107 Einträgen läuft das Skript typischerweise in 30–60 Sekunden durch.
Description
Languages
Python
100%