我想使用 shell 脚本登录网站,同时我想自动获取用户 ID 和密码。
请建议如何使用shell脚本完成。
谢谢 !!!
如果您想做的是使用 HTTP Basic 身份验证从网站检索内容,那么您可以使用 wget 或 curl 从命令行实现此目的:
wget --http-user=user --http-password=password
curl http://username:password@website.com/url
如果使用基于 cookie 的身份验证,您也可以使用 wget,具体取决于它的设置方式。例如,如果您可以 HTTP POST 到登录页面
wget --save-cookies cookies.txt --post-data \
'user=myusername&password=mypassword' http://url/loginpage
wget --load-cookies cookies.txt -p http://url/thecontentIwant
--save-cookies 和 --load-cookies 允许基于 cookie 的身份验证令牌在请求之间持续存在。
如果所使用的身份验证形式更复杂,那么答案将完全不同 - 因此,说明您想到的网站会有所帮助。此外,许多网站都有您应该使用的 API...
一般来说,如果你能稍微澄清一下这个问题会有所帮助——我发现这一点“同时我想自动获取用户 ID 和密码”有点令人困惑。如果您想在 bash 中进行交互式会话(即让用户在 bash 脚本中输入用户名和密码),那么您会发现
read -e -p
非常有用(例如 read -e -p "My prompt:" varname; echo $varname)。
这取决于网站的设置方式。如果它使用基本的 HTTP 身份验证,您可以使用 wget 或 curl 并通过命令行参数提供用户名和密码。如果登录信息是通过表单提交的,您可以将其附加到 URL 或将其添加到发布数据中。
如果登录是更深奥的东西,你可能不得不用 Selenium 之类的东西编写浏览器会话脚本。这完全取决于网站的认证系统如何。