2012-12-29 4 views
8

Gibt es eine Möglichkeit CiteSeerX programmatisch zuzugreifen (z Suche nach Autor und/oder Titel?) Überraschenderweise kann ich nichts finden, relevant; auch andere versuchen, wissenschaftliche Artikel-Metadaten zu erhalten, ohne auf Scraping zurückgreifen zu müssen?CiteSeerX Suche api

EDIT: beachten Sie, dass CiteSeerX supports OAI PMH, aber das scheint eine API darauf ausgerichtet, digitale Bibliotheken miteinander („content Verbreitung“) auf dem neuesten Stand halten zu werden und nicht speziell suchen kann leider. Außerdem ist die Citeseer-Information auf dieser Seite sehr spärlich und sagt sogar: "Derzeit gibt es Schwierigkeiten mit dem OAI".

Es ist another SO Frage zu CiteSeerX API (wenn auch nicht speziell suchen); Die 2 Antworten lösen das Problem nicht (man spricht von Mendeley, einer anderen Software, und die andere sagt, dass OAI-PMH-Implementierungen Erweiterungen der Minimalspezifikation anbieten können).

Alternativ kann jemand eine gute Art und Weise vorschlägt Zitate von Autoren/Titel programmatisch zu erhalten?

+1

JabRef hat eine CiteSeerX Unterstützung. Schau dir ihr GIT an, um zu sehen, wie es geht: http://jabref.sourceforge.net/download.php Ist JabRef möglicherweise die Antwort auf dein wirkliches Problem, d. H. Das Referenzmanagement? –

+0

Ich würde vorschlagen, ihre Webseite zu scrapen und Ihre eigene XQuery-Engine zu schreiben, um das zuverlässig zu tun. – BeniBela

+0

Danke für JabRef, @ Marek-Cruz. Ja, ich sehe, dass sie auch kratzen (CiteSeerXFetcher.java). Ich bin überrascht, dass CiteSeerX keine API hat (und dass sie die Situation auf ihrer Website nicht eindeutig auf die eine oder andere Weise angeben). – dan3

Antwort

5

Wie durch einen der commen vorgeschlagen, habe ich versucht, jabref zuerst:

jabref -n -f "citeseer: Titel: (Lehren aus) Autor: (Brewer)"

jedoch Jabref scheint nicht zu erkennen, dass die Abfragezeichenfolge Doppelpunkte enthalten muss, und löst daher einen Fehler aus.

für Suchergebnisse, endete ich die CiteSeerX Ergebnisse mit Pythons BeautifulSoup Schaben bis:

url = "http://citeseerx.ist.psu.edu/search?q=" 
q = "title%3A%28{1}%29+author%3%28{0}%29&submit=Search&sort=cite&t=doc" 
url += q.format (author_last, title.replace (" ", "+")) 
soup = BeautifulSoup (urllib2.urlopen (url).read()) 
result = soup.html.body ("div", id = "result_list") [0].div 
title = result.h3.a.string.strip() 
authors = result ("span", "authors") [0].string 
authors = authors [len ("by "):].strip() 
date = result ("span", "pubyear") [0].string.strip (", ") 

Es ist möglich, ein Dokument-ID aus den Ergebnissen zu erhalten (der misleadingly Namen „doi = ...“ Teil in der Übersichts-Link-URL) und dann an die CiteSeerX OAI-Engine übergeben, um Dublin Core XML zu erhalten (z. B. http://citeseerx.ist.psu.edu/oai2?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:CiteSeerX.psu:10.1.1.42.2177); Allerdings enthält XML mehrere dc: date-Elemente, wodurch es weniger nützlich ist als die scrape-Ausgabe.

Schade CiteSeerX macht die Menschen greifen trotz aller offenen Archive/Open-Access-Rhetorik zu kratzen.