用于登录网站的Shell脚本

时间:2012-06-08 12:34:27

标签: shell unix scripting

我想使用shell脚本登录网站,同时我也想自动获取用户ID和密码。

请使用shell脚本建议如何完成。

谢谢!!!

2 个答案:

答案 0 :(得分:5)

如果您要做的是使用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“我的提示:”varname; echo $ varname)。

答案 1 :(得分:0)

这取决于网站的设置方式。如果它使用基本的HTTP身份验证,您可以使用wget或curl并通过命令行参数提供用户名和密码。如果通过表单提交登录信息,您可以将其附加到URL或将其添加到帖子数据。

如果登录的内容更为深奥,则必须使用Selenium之类的脚本编写浏览器会话脚本。这完全取决于网站的身份验证系统。