【问题标题】:Haskell processing of Javascript "click" to get the linkHaskell处理Javascript“点击”获取链接
【发布时间】:2013-12-08 16:31:58
【问题描述】:

伙计们。也许您可以帮助解决以下问题(一些解决方法非常好)。

我需要从 Google Scholar 自动加载 BibTex 记录(或其他带有完整作者列表和期刊/书籍/等名称的记录)。至于现在,我可以形成一个请求 URL 并下载搜索结果页面(例如:http://bit.ly/1ddg1re)。在此页面上,要获取 BibTex 记录,应单击 Cite 链接(据我所知,这是 JavaScript),然后单击链接 Import to BibTex(即只是一个普通的 GET 链接到一个文本,包含 BibText 记录)。

所以我可以从通常的 GET URL 加载页面,但我的问题是在 Haskell 中执行此“单击 JavaScript 链接并获取结果页面”。有什么建议吗?

【问题讨论】:

  • 这对我来说并不完全清楚。你想在 Haskell 中构建一个 GUI,比如说,使用 gtk2hs 或类似的东西,还是你想使用 Yesod 为浏览器提供 HTML/javascript?还是完全是别的东西?获取数据后,我们将如何处理数据?我们需要建立一个数据库,还是数据来自网络?

标签: javascript html haskell html-parsing


【解决方案1】:
  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/&output=citation&scisig=AAGBfm0AAAAAUqhCtMOkKUkPe4VNc7E6kPW-SRLxTbBL&scisf=4&hl=en">Import into BibTeX</a>

    获取href属性中的URL,向它发出GET请求,就完成了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 2020-11-29
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多