如何使用 Wget 之类的命令行工具登录 OpenID 网站?

如何使用 Wget 之类的命令行工具登录 OpenID 网站?

具体来说,我希望能够从我在各个 Stack Exchange 网站上的用户个人资料中下载某些页面。但是,我希望自动(使用作业cron)从命令行以可解析的格式执行此操作。我更喜欢使用 Linux 来实现这一点,但如果有必要,我也可以访问 Mac 或 Windows 计算机。

理想情况下,我想使用类似的工具获得或者卷曲来获取页面。不过我不知道如何绕过登录。我看到一些建议提到你可以通过 Firefox 登录,导出相关 cookie 并通过其--load-cookies选项将其导入 Wget。例如这里这里。如果我刚刚登录,这个功能可以工作,但过了一会儿就不行了。我猜是因为 ID 令牌需要刷新。

因此,登录 SU 并导出我的 cookie 后,我可以执行以下操作:

wget --load-cookies cookies.txt \
  https://superuser.com/users/151431/terdon?tab=responses

几分钟后,我收到 404 错误:

wget -O ~/stack/$(date +%s) --load-cookies ~/cookies.txt \
   https://superuser.com/users/151431/terdon?tab=responses

--2013-08-06 04:04:14--  https://superuser.com/users/151431/terdon?tab=responses
Resolving superuser.com (superuser.com)... 198.252.206.16
Connecting to superuser.com (superuser.com)|198.252.206.16|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-08-06 04:04:15 ERROR 404: Not Found.

那么,如何从命令行自动登录到启用 OpenID 的网站?


PS。我认为这比在 Web 应用程序中更适合,因为我的问题实际上是关于命令行方面,而不是所讨论的网页的实际细节。我猜任何解决方案都适用于所有开放ID網站。

答案1

你不能,因为 Cookies 会经常刷新。这是出于安全考虑,唯一能做到的就是你已经做过的方式。至少,据我所知。

答案2

(重新)阅读手册页并查看和标志wget的描述。--user--password

请注意,不建议将密码作为命令行参数传递,因为任何运行的人 ps都可以看到它。最佳做法是不要将原始密码保存在任何地方,但次佳做法是将其放在只有所有者可以读取的文件中。

相关内容