2012-12-29 10 views
8

C'è un modo per accedere a CiteSeerX a livello di codice (ad esempio ricerca per autore e/o titolo?) Sorprendentemente non riesco a trovare nulla di rilevante; sicuramente anche altri stanno cercando di ottenere metadati di articoli eruditi senza ricorrere al raschiamento?citeseerx search api

EDIT: nota che CiteSeerX supports OAI PMH, ma che sembra essere un'API orientata verso le biblioteche digitali che si tengono aggiornate l'una con l'altra ("diffusione del contenuto") e non supporta specificamente la ricerca. Inoltre le informazioni citateer su quella pagina sono molto scarse e dicono anche "Attualmente ci sono difficoltà con l'OAI".

C'è domanda another SO su API CiteSeerX (anche se non ricerca specificatamente); le 2 risposte non risolvono il problema (si parla di Mendeley, un altro software, e l'altro dice che le implementazioni OAI-PMH sono libere di offrire estensioni alle specifiche minime).

In alternativa, qualcuno può suggerire un buon modo per ottenere citazioni da autori/titoli a livello di programmazione?

+1

JabRef ha un supporto CiteSeerX. Guarda il loro GIT per vedere come lo fanno: http://jabref.sourceforge.net/download.php Forse JabRef è la risposta al tuo vero problema, ad esempio la gestione dei riferimenti? –

+0

Suggerirei di raschiare la loro pagina Web e scrivere il proprio motore XQuery per poterlo fare in modo affidabile. – BeniBela

+0

Grazie per JabRef, @ marek-cruz. Sì, vedo che raschiano anche loro (CiteSeerXFetcher.java). Sono sorpreso che CiteSeerX non abbia un'API (e che non dichiarino chiaramente la situazione sul loro sito, in un modo o nell'altro). – dan3

risposta

5

Come suggerito da uno dei commentatori, ho provato JabRef prima:

JabRef -n -f "CiteSeer: titolo: (lezioni da) autore: (Brewer)"

Tuttavia jabref sembra non rendersi conto che la stringa di query deve contenere i due punti e quindi genera un errore.

Per i risultati della ricerca, ho finito per raschiare i risultati CiteSeerX con BeautifulSoup di Python:

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 (", ") 

E 'possibile ottenere un ID del documento dai risultati (il "doi = ..." parte fuorviante nome nell'URL del link di riepilogo) e quindi passare al motore OAI di CiteSeerX per ottenere il Dublin Core XML (ad es. http://citeseerx.ist.psu.edu/oai2?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:CiteSeerX.psu:10.1.1.42.2177); tuttavia, l'XML finisce per contenere più elementi dc: date, il che lo rende meno utile dell'output di scrap.

Peccato CiteSeerX fa sì che le persone ricorrano alla raschiatura nonostante tutti gli archivi aperti/retorica ad accesso aperto.