2012-12-29 51 views
8

有沒有辦法以編程方式訪問CiteSeerX(例如按作者和/或標題搜索?)令人驚訝的是我找不到任何相關的東西;當然其他人也試圖獲得學術性的文章元數據而不訴諸刮?citeseerx搜索api

編輯:請注意CiteSeerX supports OAI PMH,但這似乎是一個針對數字圖書館保持最新的API(「內容傳播」),並沒有明確支持搜索。此外,該頁上的citeseer信息非常稀少,甚至說「目前,OAI存在困難」。

還有another關於CiteSeerX API的SO問題(雖然不是專門搜索); 2個答案不能解決問題(一個人談論另一個軟件Mendeley,另一個人說OAI-PMH實現可以自由地爲最小規範提供擴展)。

或者,任何人都可以提出一個好方法來以編程方式從作者/標題獲得引文?

+1

JabRef支持CiteSeerX。看看他們的GIT,看看他們是如何做到的:http://jabref.sourceforge.net/download.php可能JabRef是你真正的問題的答案,即參考管理? – 2012-12-29 21:24:41

+0

我會建議抓取他們的網頁並編寫自己的XQuery引擎,以便能夠可靠地做到這一點。 – BeniBela

+0

感謝JabRef,@ marek-cruz。是的,我看到他們也刮(CiteSeerXFetcher.java)。我很驚訝CiteSeerX沒有API(並且他們沒有清楚地說明他們網站上的情況,不管是哪種方式)。 – dan3

回答

5

正如所建議的評論者之一,我試過的JabRef第一:

的JabRef -n -f 「citeseer:標題:(從教訓)作者:(布魯爾)」

然而jabref似乎沒有意識到查詢字符串需要包含冒號並引發錯誤。

對於搜索結果,我結束了刮鏁結果與Python的BeautifulSoup:

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

有可能得到結果的文件ID(在誤導爲「DOI = ...」部分在摘要鏈接URL中),然後將其傳遞給CiteSeerX OAI引擎以獲取都柏林核心XML(例如http://citeseerx.ist.psu.edu/oai2?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:CiteSeerX.psu:10.1.1.42.2177);然而,XML最終包含多個dc:date元素,這使得它比scrape輸出更有用。

太糟糕了CiteSeerX讓人們不顧一切的開放式檔案/開放式訪問修辭而求助於刮蹭。