2

私は私のbashスクリプトに少し行き詰まっています。httpsベースのWebサイトにログインする必要があります...ユーザー名とパスワードでログインする必要があり、特定のリンクを見つける必要があります。リンクのテキストは常に同じですが、リンクが指す場所が変わります。その場所を取得し、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

このコードは Web サイトにログインするために機能しますが、リンクを特定して wget する方法がわかりません...

#!/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 に答える