【问题标题】:Haskell fetch URL via browserHaskell 通过浏览器获取 URL
【发布时间】:2012-07-05 22:19:45
【问题描述】:

我想在 Haskell 中进行一些屏幕抓取(来自 Netflix),但该站点需要 cookie 登录状态,因此大多数示例使用浏览器自动化来要求登录的浏览器执行实际的 URL 获取,然后从该文本中抓取。

我想要(在 Ruby 中)的一个很好的例子是:https://gist.github.com/1425290

是否有任何简单的方法可以从 Haskell 中进行等效操作?

【问题讨论】:

  • 有什么特别的原因不能让您只音译 Ruby 代码吗? (System.Process 模块可能会有所帮助。)
  • 是的; Ruby 代码使用 JavaScript 驱动浏览器获取页面,这是我在 Windows 上询问的另一种方法,因为它不支持 JS。
  • JavaScript 绝对可以在 Windows 上运行……您现在正在使用它。该脚本实际上使用 Applescript,它特定于 OSX 的。
  • 啊,是的,感谢您的更正,我在讨论 Mac 时通常会混淆术语! :-)
  • 这可能是一个与语言无关的问题(“什么是在窗口上抓取屏幕的好方法?”或其他什么),然后在 Haskell 中研究如何做到这一点。

标签: haskell screen-scraping web-scraping


【解决方案1】:

我知道HTTP 包的Network.Browser 支持cookie,curl 也支持cookie。大概http-conduitNetwork.HTTP.Conduit.Browser 之所以这样命名是因为它也支持cookie,尽管我对此不是100% 有信心。

【讨论】:

  • 谢谢 - 虽然没有研究细节,但我已经看到了这一点,但是强制自动登录和管理 cookie 比手动登录然后只解析 HTML 以获得结果要复杂得多。我确实找到了一个这样做的 python 示例 - 并且可以模仿它,但更容易调整 python 脚本来执行我想要的获取。 (jacob.hoffman-andrews.com/netflix-enqueue.py.txt) 我对在 Haskell 中实现很感兴趣,只是想看看它有多容易——Ruby 代码非常紧凑!
猜你喜欢
  • 1970-01-01
  • 2017-05-10
  • 2014-12-18
  • 2013-08-23
  • 2014-01-03
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多