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 ?
<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'ai souvent besoin de re-configurer ou d'=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'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'ai moi-m=C3=AAme pens=C3=A9 =C3=A0 des outils de test d=
'applis web (cf Selenium en [1]) ou des navigateurs en mode texte.<br><=
/div>J'ai lu qu'il existait des outils comme scrapy (cf [2]).<br></=
div>J'ai beaucoup de mal =C3=A0 =C3=A9valuer l'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>
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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.
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.
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?
On 03/24/2016 02:40 PM, Daniel Caillibaud wrote:
Le 24/03/16 à 11:21, Sébastien NOBILI <sebnewsletter@free.fr> 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?
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?
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
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.
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
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...
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...
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...