Je veux créer un script de ligne de commande pour Cygwin/Bash qui se connecte à un site, navigue vers une page spécifique et la compare avec les résultats de la dernière exécution . Jusqu'à présent, je l'ai travailler avec Lynx comme ceci:La bonne façon de scripter périodiquement une page à partir d'un site https
----snpipped, just setting variables----
echo "# Command logfile created by Lynx 2.8.5rel.5 (29 Oct 2005)
----snipped the recorded keystrokes-------
key Right Arrow
key p
key Right Arrow
key ^U" >> $tmp1 #p, right arrow initiate the page saving
#"type" the filename inside the "where to save" dialog
for i in $(seq 0 $((${#tmp2} - 1)))
do
echo "key ${tmp2:$i:1}" >> $tmp1
done
#hit enter and quit
echo "key ^J
key y
key q
key y
" >> $tmp1
lynx -accept_all_cookies -cmd_script=$tmp1 https://thewebpage.com/login
diff $tmp2 $oldComp
mv $tmp2 $oldComp
Il ne se sent pas vraiment « droit »: le cmd_script consiste en des actions de l'utilisateur par rapport au lieu de spécifier les noms de lien exact et actions. Donc, si quelque chose sur le site change, change de place, ou qu'un nouveau lien est ajouté - je vais devoir recréer les actions.
Aussi, je ne peux pas vérifier toutes les erreurs, donc je ne peux pas abandonner le script si quelque chose se passe mal (échec de la connexion, etc.)
Une autre alternative que je cherchais à Mechanize est avec Ruby (comme note - J'ai 0 expérience avec Ruby).
Quelle serait la meilleure façon d'améliorer ou de réécrire cela?
La connexion se fait via un formulaire (qui redirige ensuite vers une interface web), est-ce que wget/curl peut gérer cela? – DarthShader
Je ne suis pas sûr, mais je suppose que vous pouvez encoder les paramètres de connexion dans l'URL (? Username = myname & password = 1234). Dans votre script, vous devez d'abord appeler l'URL de connexion, puis la page qui vous intéresse ... –