2 votes

Bash script pour se connecter au site web et télécharger le fichier

Je suis un peu coincé avec mon bash script. J'ai besoin qu'il se connecte à un site web basé sur https... il doit se connecter avec un nom d'utilisateur et un mot de passe, puis il doit localiser un lien particulier, le texte du lien est toujours le même mais l'emplacement vers lequel il pointe change, il doit saisir cet emplacement et le télécharger avec wget.

Anhbody avez-vous des conseils, j'ai besoin qu'il soit portable donc je préfère ne pas dépendre de programmes externes .

Merci.

4voto

Zsolt Botykai Points 20615

bash n'est pas idéal pour ce genre de tâches. Vous pouvez cependant essayer quelque chose comme :

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

Mais si vous avez besoin de trouver un lien sur la page, vous pouvez essayer :

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

Puis obtenir sa sortie via curl encore.

Mais je recommanderais quelque chose comme mécaniser pour la tâche. Il existe des bibliothèques similaires pour python et Ruby, etc.

2voto

John V Points 21

Ce code fonctionne pour se connecter au site web, mais je ne sais pas comment procéder pour identifier le lien et le 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"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X