Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment scripter la configuration d'équipements configurables par une appli web ?

5 réponses
Avatar
Olivier
--001a114123d2b91a4f052ec84e90
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Bonjour,

Voici une question qui me trotte dans la t=C3=AAte depuis longtemps.

J'ai souvent besoin de re-configurer ou d'=C3=A9mettre commandes sur des
=C3=A9quipements administrables par une appli web.
Un exemple typique serait de re-d=C3=A9marrer une Livebox: sans outil, il f=
aut
saisir l'adresse IP de la Livebox, cliquer sur un bouton pour passer en
mode =C3=A9tendu, cliquer sur un bouton reboot et une fen=C3=AAtre de confi=
rmation.
Comment automatiser tout =C3=A7a ?

J'ai moi-m=C3=AAme pens=C3=A9 =C3=A0 des outils de test d'applis web (cf Se=
lenium en [1])
ou des navigateurs en mode texte.
J'ai lu qu'il existait des outils comme scrapy (cf [2]).
J'ai beaucoup de mal =C3=A0 =C3=A9valuer l'adaptation de ces outils =C3=A0 =
mon besoin.

Quels outils me conseillerez-vous pour cela ?
Que sugg=C3=A9rez-vous ?
Quelles exp=C3=A9riences, r=C3=A9ussies ou non ?

Slts


[1] http://www.seleniumhq.org/
[2] http://scrapy.org/

--001a114123d2b91a4f052ec84e90
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div><div><div><div><div><div><div>Bonjour,<br><=
br></div>Voici une question qui me trotte dans la t=C3=AAte depuis longtemp=
s.<br><br></div>J&#39;ai souvent besoin de re-configurer ou d&#39;=C3=A9met=
tre commandes sur des =C3=A9quipements administrables par une appli web.<br=
></div>Un exemple typique serait de re-d=C3=A9marrer une Livebox: sans outi=
l, il faut saisir l&#39;adresse IP de la Livebox, cliquer sur un bouton pou=
r passer en mode =C3=A9tendu, cliquer sur un bouton reboot et une fen=C3=AA=
tre de confirmation.<br></div><div>Comment automatiser tout =C3=A7a ?<br></=
div><br></div>J&#39;ai moi-m=C3=AAme pens=C3=A9 =C3=A0 des outils de test d=
&#39;applis web (cf Selenium en [1]) ou des navigateurs en mode texte.<br><=
/div>J&#39;ai lu qu&#39;il existait des outils comme scrapy (cf [2]).<br></=
div>J&#39;ai beaucoup de mal =C3=A0 =C3=A9valuer l&#39;adaptation de ces ou=
tils =C3=A0 mon besoin.<br><br>Quels outils me conseillerez-vous pour cela =
?<br></div>Que sugg=C3=A9rez-vous ?<br></div><div>Quelles exp=C3=A9riences,=
r=C3=A9ussies ou non ?<br></div><div><br></div>Slts<br><div><div><div><div=
><br><br>[1] <a href=3D"http://www.seleniumhq.org/">http://www.seleniumhq.o=
rg/</a><br>[2] <a href=3D"http://scrapy.org/">http://scrapy.org/</a><br></d=
iv></div></div></div></div>

--001a114123d2b91a4f052ec84e90--

5 réponses

Avatar
S
Bonjour,

Le jeudi 24 mars 2016 à 10:45, Olivier a écrit :
J'ai souvent besoin de re-configurer ou d'émettre commandes sur des
équipements administrables par une appli web.
Un exemple typique serait de re-démarrer une Livebox: sans outil, il faut
saisir l'adresse IP de la Livebox, cliquer sur un bouton pour passer en
mode étendu, cliquer sur un bouton reboot et une fenêtre de confirmation.
Comment automatiser tout ça ?

J'ai moi-même pensé à des outils de test d'applis web (cf Selenium en [1])
ou des navigateurs en mode texte.



Moi aussi ça me trotte… Je n’ai jamais mis en place pour ce type de besoin, mais
j’ai déjà fait des choses similaires pour d’autres besoins (télécharger la
version PDF d’un journal sur son site, récupérer une liste de petites annonces
pour me les envoyer par mail, par exemple).

L’approche navigateur en mode texte risque de ne pas fonctionner si l’interface
utilise du JavaScript. Si c’est une interface simple, alors, lynx fera bien
l’affaire mais il me semble qu’on ne peut pas l’automatiser… Pour automatiser,
il faudra passer par des bibliothèques dédiées (LWP avec Perl, requests avec
Python, etc.).

Pour des applications utilisant JavaScript, j’utilise CasperJS.

Sébastien
Avatar
Daniel Caillibaud
Le 24/03/16 à 11:21, Sébastien NOBILI a écrit :

SN> Bonjour,
SN>
SN> Le jeudi 24 mars 2016 à 10:45, Olivier a écrit :
SN> > J'ai souvent besoin de re-configurer ou d'émettre commandes sur des
SN> > équipements administrables par une appli web.
SN> > Un exemple typique serait de re-démarrer une Livebox: sans outil , il faut
SN> > saisir l'adresse IP de la Livebox, cliquer sur un bouton pour passer en
SN> > mode étendu, cliquer sur un bouton reboot et une fenêtre de confirmation.
SN> > Comment automatiser tout ça ?
SN> >
SN> > J'ai moi-même pensé à des outils de test d'applis web (cf Selenium en [1])
SN> > ou des navigateurs en mode texte.
SN>
SN> Moi aussi ça me trotte… Je n’ai jamais mis en plac e pour ce type de besoin, mais
SN> j’ai déjà fait des choses similaires pour d’a utres besoins (télécharger la
SN> version PDF d’un journal sur son site, récupérer une liste de petites annonces
SN> pour me les envoyer par mail, par exemple).
SN>
SN> L’approche navigateur en mode texte risque de ne pas fonctionne r si l’interface
SN> utilise du JavaScript. Si c’est une interface simple, alors, ly nx fera bien
SN> l’affaire mais il me semble qu’on ne peut pas l†™automatiser… Pour automatiser,
SN> il faudra passer par des bibliothèques dédiées (LWP avec Perl, requests avec
SN> Python, etc.).
SN>
SN> Pour des applications utilisant JavaScript, j’utilise CasperJS.

j'utilise aussi casperJs pour monitorer des applis web (vérifier qu'ap rès entrée du login/pass
on arrive sur une page qui contient ça et ça, ou que le SSO fonct ionne et sinon dire à quelle
redirection il plante), ça marche bien (même si j'ai un peu de fa ux positifs, de temps en temps
il semble perdre ses petits, ou lire une info trop tôt malgré le wait).

Pour récupérer des infos sur une page (scraping), si y'a pas de j s lynx ou wget me semblent
plus simples, mais ça dépend de ce qu'on veut récupérer (ça peut être plus simple avec
casperJs pour faire de la sélection façon css).

--
Daniel

Montrez moi un homme parfaitement satisfait de lui même, et je vous
montrerai un parfait raté.
Thomas Edison
Avatar
mireero
On 03/24/2016 02:40 PM, Daniel Caillibaud wrote:
Le 24/03/16 à 11:21, Sébastien NOBILI a écrit :

SN> Bonjour,
SN>
SN> Le jeudi 24 mars 2016 à 10:45, Olivier a écrit :
SN> > J'ai souvent besoin de re-configurer ou d'émettre commandes sur des
SN> > équipements administrables par une appli web.
SN> > Un exemple typique serait de re-démarrer une Livebox: sans outil, il faut
SN> > saisir l'adresse IP de la Livebox, cliquer sur un bouton pour passer en
SN> > mode étendu, cliquer sur un bouton reboot et une fenêtre de confirmation.
SN> > Comment automatiser tout ça ?
SN> >
SN> > J'ai moi-même pensé à des outils de test d'applis web (cf Selenium en [1])
SN> > ou des navigateurs en mode texte.
SN>
SN> Moi aussi ça me trotte… Je n’ai jamais mis en place pour ce type de besoin, mais
SN> j’ai déjà fait des choses similaires pour d’autres besoins (télécharger la
SN> version PDF d’un journal sur son site, récupérer une liste de petites annonces
SN> pour me les envoyer par mail, par exemple).
SN>
SN> L’approche navigateur en mode texte risque de ne pas fonctionner si l’interface
SN> utilise du JavaScript. Si c’est une interface simple, alors, lynx fera bien
SN> l’affaire mais il me semble qu’on ne peut pas l’automatiser… Pour automatiser,
SN> il faudra passer par des bibliothèques dédiées (LWP avec Perl, requests avec
SN> Python, etc.).
SN>
SN> Pour des applications utilisant JavaScript, j’utilise CasperJS.

j'utilise aussi casperJs pour monitorer des applis web (vérifier qu'après entrée du login/pass
on arrive sur une page qui contient ça et ça, ou que le SSO fonctionne et sinon dire à quelle
redirection il plante), ça marche bien (même si j'ai un peu de faux positifs, de temps en temps
il semble perdre ses petits, ou lire une info trop tôt malgré le wait).

Pour récupérer des infos sur une page (scraping), si y'a pas de js lynx ou wget me semblent
plus simples, mais ça dépend de ce qu'on veut récupérer (ça peut être plus simple avec
casperJs pour faire de la sélection façon css).




J'imagine qu'avec des outils de type "web développeur" qu'on trouve
maintenant sur la plupart des navigateurs, on peut récupérer les
requêtes (par exemple celle qui logue sur la livebox avec user/pwd),
puis créer une petite application nodejs client (par exemple) ou tout
simplement utiliser netcat pour émettre la même requête (tout en pensant
sans doute à gérer le cookie de session etc.).
En bref, cela semble une bonne idée et ça fait longtemps que je pense à
m'y mettre (par exemple pour se connecter automatiquement aux wifis
style sfr fone etc.).
Ça fonctionnerait, non?
Avatar
S
Bonjour,

Le vendredi 25 mars 2016 à 15:04, mireero a écrit :
J'imagine qu'avec des outils de type "web développeur" qu'on trouve
maintenant sur la plupart des navigateurs, on peut récupérer les requêtes
(par exemple celle qui logue sur la livebox avec user/pwd), puis créer une
petite application nodejs client (par exemple) ou tout simplement utiliser
netcat pour émettre la même requête (tout en pensant sans doute à gérer le
cookie de session etc.).

Ça fonctionnerait, non?



Oui, ça devrait fonctionner, à condition que les différentes URL soient toujours
les mêmes et pointent vers de vraies pages (on en revient à JavaScript et la
possibilité d’adapter le contenu d’une page par son « hash » – ce qu’on trouve
après le « # » – qui est maintenant beaucoup utilisé pour déplacer la logique de
rendu des pages vers le navigateur). Si on est face à ce type d’application
moderne, on peut récupérer la liste des URL appelées en arrière-plan, mais le
succès d’un script qui les appellerait n’est pas toujours garanti (j’en ai déjà
fait les frais).

En gros, ça ne coûte rien d’essayer. C’est même en général ma première approche
et j’en change quand ça devient galère.

Sébastien
Avatar
mireero
On 03/25/2016 05:00 PM, Sébastien NOBILI wrote:
Bonjour,

Le vendredi 25 mars 2016 à 15:04, mireero a écrit :
J'imagine qu'avec des outils de type "web développeur" qu'on trouve
maintenant sur la plupart des navigateurs, on peut récupérer les requêtes
(par exemple celle qui logue sur la livebox avec user/pwd), puis créer une
petite application nodejs client (par exemple) ou tout simplement utiliser
netcat pour émettre la même requête (tout en pensant sans doute à gérer le
cookie de session etc.).



Ça fonctionnerait, non?



Oui, ça devrait fonctionner, à condition que les différentes URL soient toujours
les mêmes et pointent vers de vraies pages (on en revient à JavaScript et la
possibilité d’adapter le contenu d’une page par son « hash » – ce qu’on trouve
après le « # » – qui est maintenant beaucoup utilisé pour déplacer la logique de
rendu des pages vers le navigateur). Si on est face à ce type d’application
moderne, on peut récupérer la liste des URL appelées en arrière-plan, mais le
succès d’un script qui les appellerait n’est pas toujours garanti (j’en ai déjà
fait les frais).

En gros, ça ne coûte rien d’essayer. C’est même en général ma première approche
et j’en change quand ça devient galère.

Sébastien




Je connaissais pas casperJS, ça a l'air vachement pratique.

Pour en revenir au pages dynamiquement générées (javascript), il me
semble que tant que les requêtes vers le serveur sont construites de la
même façon, il suffit de les reproduire. Puis de parser la réponse du
serveur et d'avancer ainsi de proche en proche.
Après, si la page est modifiée (mise à jour), c'est sûr que cela rend la
construction du script bien plus complexe.
Ou bien on reste simple et on l'adapte à chaque fois.

Bref, j'en saurai plus quand je trouve un peu de temps pour me lancer
dans ce genre d'application...