2

我有点坚持我的 bash 脚本。我需要它登录到一个基于 https 的网站......它需要使用用户名和密码登录,然后它需要找到一个特定的链接,链接的文本总是相同的,但它指向的位置会发生变化,它需要获取该位置并使用 wget 下载它。

Anhbody 有任何提示,我需要它是可移植的,所以我不想依赖外部程序..

谢谢

4

2 回答 2

4

bash不适合这类任务。尽管您可以尝试以下方法:

curl --user name:password https://www.example.com/

但是如果你需要在页面上找到链接,你可以尝试:

curl --user name:password https://www.example.com/ | grep WHAT_EVER_IDENTIFIES_LINK

然后再次通过它获得它的输出curl

但我会推荐像机械化这样的任务。python和Ruby等有类似的库。

于 2012-08-07T07:27:55.027 回答
2

此代码可用于登录网站,但我不确定如何继续识别链接并获取它...

#!/bin/bash

#REQUIRED PARAMS
username=""
password=""

#EXTRA OPTIONS
uagent="Mozilla/5.0" #user agent (fake a browser)
sleeptime=0 #add pause between requests

touch "cookie.txt" #create a temp. cookie file

#INITIAL PAGE
echo "[+] Fetching" && sleep $sleeptime
initpage=`curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent"                "https://ny2.free2surfvpn.com/?src=connect"`
token=`echo "$initpage" | grep "authenticity_token" | sed -e 's/.*value="//' | sed -e   's/" \/>.*//'`

#LOGIN
echo "[+] Submitting the login form..." && sleep $sleeptime
loginpage=`curl -s -b "cookie.txt" -c "cookie.txt" -L --sslv3 -A "$uagent" -d     "authenticity_token=$token&username=$username&password=$password"     "https://mobile.twitter.com/session"`

#HOME PAGE
echo "[+] Getting page" && sleep $sleeptime
homepage=`curl -s -b "cookie.txt" -c "cookie.txt" -L -A "$uagent"     "https://ny2.free2surfvpn.com/?src=connect"`

rm "cookie.txt"
于 2012-08-07T07:49:23.380 回答