如何从linux命令行输入网站的登录信息

Tim*_*Tim 30 linux bash website command-line login

我的互联网连接由大学提供。它受用户名/密码组合保护。这意味着当我启动计算机时,我必须启动 Web 浏览器并打开任意网站。然后我被重定向到一个页面,其中(除其他外)包含两种形式。在这些我必须输入用户名和密码。我设法使用 firefox(可以保存密码)和链接(从命令行加载速度更快)来做到这一点。

有没有办法使用 bash 脚本自动化登录过程?这将允许在启动时进行登录,以便在我启动 X 服务器时它已经存在。

Blu*_*303 18

您可以尝试使用curl,您可以像这样简单地使用 curl 登录网页:

curl --user name:password http://somesite.com -v 
Run Code Online (Sandbox Code Playgroud)

您可以从Stackoverflow answer将数据传递到这样的网站

    curl -b cookies.txt -c cookies.txt --data "Username=xx&Password=xx&Login=Login" [urlthatyour form submits]
Run Code Online (Sandbox Code Playgroud)

如果您想在登录后发出另一个 curl 请求,则需要 cookie。cookie 中的会话 ID 将有助于授权下一个 curl 请求。

如果您不想要 cookie,您可以使用

curl --data "Username=xx&Password=xx&Login=Login" [url that your form submits]
Run Code Online (Sandbox Code Playgroud)

您可以另外参考此处的特殊命令


Tim*_*Tim 6

我终于找到了一种使用elinks. 它可以工作,甚至可以轻松配置!

需要设置两个选项。这可以通过添加以下行~/.elinks/elinks.conf(如果文件不存在,创建一个)或通过更改选项对话框中相应位置的值来完成elinks

    # Save username and password for later use
set document.browse.forms.show_formhist = 1
    # Do not ask for confirmation before a form is submitted
set document.browse.forms.confirm_submit = 0
Run Code Online (Sandbox Code Playgroud)

脚本化自动登录的步骤是:

  • 设置这两个选项
  • 在 中打开登录页面elinks,填写表格并提交。
  • 选择记住名称和密码以备后用。
  • 关闭链接
  • elinks -auto-submit http://somesite.com

后一个命令应该执行自动登录,无需进一步的用户交互。

我实际上使用timeout 1m elinks -auto-submit http://somesite.com &,这样我就不会一直在后台运行空闲的 elinks 进程。