将wget与OpenID登录结合使用

时间:2012-02-02 21:06:50

标签: linux bash shell wget

我有一个(合法的)边缘情况,我想使用任何命令行工具下载网页,但网页需要OpenID登录才能显示我需要的内容。

wget支持basic auth and FTP,但我无法想到将其与OpenID登录结合使用的理智方式。我能想到的唯一方法

  • 使用wget
  • 执行OpenID登录
  • 以某种方式存储生成的会话cookie
  • 尝试使用其他wget电话抓取该网页,并--load-cookies上次通话中的Cookie
但是,这似乎很复杂,因为IIRC OpenID登录过程并不像普通的旧网站登录那么简单。有没有人

  • 知道一种不太复杂的方式(在其他地方手动执行OpenID登录是完全可以接受的)
  • 知道我上面描述的现成实现吗?如果可能的话,我热衷于避免从头开始构建这个。

欢迎其他灵感。

我可以在Linux或Windows上工作。从基础设施的角度来看,Linux是首选,但任何一个平台都可以。

1 个答案:

答案 0 :(得分:2)

  

在其他地方手动执行OpenID登录

我能想到的最好的方法是使用任何浏览器登录您想要的任何服务。然后,该服务将以某种方式将您的“状态”保存在浏览器的cookie中。

获取该Cookie,例如将它存储在cookie.txt中并将其传递到标题

wget --header="Cookie: $(cat cookie.txt)" http://...

只要会话有效,就可以使用wget脚本。应该适用于99%的所有案例,可能不适用于网上银行(如果确实如此......立即转换银行:-P)