2013-12-08 50 views
1

夥計們。也許你可以幫助解決以下問題(一些解決方法非常好)。Haskell處理Javascript「單擊」以獲取鏈接

我需要自動加載來自Google學術搜索的BibTex記錄(或具有完整作者列表和期刊/書籍/等名稱的其他記錄)。至於現在我可以形成請求URL並下載搜索結果頁面(例如,像這樣的:http://bit.ly/1ddg1re)。在這個頁面上得到一個BibTex記錄的人應該點擊Cite鏈接(這是JavaScript,據我所知),然後點擊鏈接導入到BibTex(這只是一個通常的GET鏈接到文本,包含BibText記錄)。

因此,我可以從通常的GET URL加載頁面,但我的問題是在Haskell中「單擊JavaScript鏈接並獲取結果頁面」。有什麼建議嗎?

+0

這並不完全清楚。你想在Haskell中構建一個GUI,例如使用gtk2hs或類似的東西,還是想使用Yesod將HTML/JavaScript提供給瀏覽器?還是完全是另一回事?我們將如何處理數據一次被取回?我們需要建立一個數據庫嗎,還是數據會來自網絡? – jamshidh

回答

2
  1. 在第一頁上搜索您感興趣的出版物的「引用」鏈接。在這個例子中,你只要是這樣的:

    <a onclick="return gs_ocit(event,'gwx5nEs8alwJ','0')" ...>Cite</a>

    gs_ocit的第二個參數是ID,第三個參數是SCIRP

  2. http://scholar.google.com/scholar?q=info:<ID>:scholar.google.com/&output=cite&scirp=<SCIRP>&hl=en發送GET HTTP請求,用<ID><SCIRP>替換上一步獲得的值。

  3. 搜索「導入BibTex」鏈接。它看起來像下面這樣:

    <a ... href="/scholar.bib?q=info:gwx5nEs8alwJ:scholar.google.com/&amp;output=citation&amp;scisig=AAGBfm0AAAAAUqhCtMOkKUkPe4VNc7E6kPW-SRLxTbBL&amp;scisf=4&amp;hl=en">Import into BibTeX</a>

    獲取href屬性中的網址,使一個GET請求給它,你就大功告成了。

+0

是的,這正是我所期待的!非常感謝。 –