#1 Le 03/04/2022, à 15:18
- geneyop
[Résolu] wget ne récupère pas la page web
Bonjour,
Je cherche à récupérer la page web suivante avec wget : https://citymapper.com/paris/bus/stops/ … ntrouge_NE
Je lance donc la commande suivante :
wget --output-document='Horaires.html' 'https://citymapper.com/paris/bus/stops/ParisStop_MairieDeMontrouge_NE'
mais le fichier téléchargé ne contient pas les informations qui s'affichent quand on ouvre la même page depuis firefox.
Y a-t-il une option supplémentaire à fournir à wget ?
Merci d'avance de votre aide.
Dernière modification par geneyop (Le 04/04/2022, à 00:22)
Hors ligne
#2 Le 03/04/2022, à 16:04
- erresse
Re : [Résolu] wget ne récupère pas la page web
Bonjour,
J'ai fait l'essai de téléchargement avec la commande que tu as listée. Elle semble fonctionner et on obtient un fichier de quelques 2~3Mo.
Apparemment le fichier téléchargé contient bien les informations mais il refuse de s'afficher dans une fenêtre de Firefox. L'écran reste blanc...
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#3 Le 03/04/2022, à 16:18
- ylag
Re : [Résolu] wget ne récupère pas la page web
Bonjour,
Au risque de dire un grosse bêtise, c'est peut-être lié à ceci :
Page web dynamique
...versus :
Page web statique
?
Dernière modification par ylag (Le 03/04/2022, à 16:19)
Hors ligne
#4 Le 03/04/2022, à 17:06
- geneyop
Re : [Résolu] wget ne récupère pas la page web
Bonjour,
Oui, la commande wget crée bien un fichier HTML de 2 à 3 Mo, mais ce fichier ne contient pas les horaires qui sont affichés avec Firefox.
Et, comme le dit ylag, il s'agit en effet d'une page web dynamique. C'est certainement là le problème : comment faire pour que wget télécharge une page dynamique ?
Hors ligne
#5 Le 03/04/2022, à 17:42
- Watael
Re : [Résolu] wget ne récupère pas la page web
utilise cette adresse avec wget
en plus d'être plus à jour.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 03/04/2022, à 19:10
- geneyop
Re : [Résolu] wget ne récupère pas la page web
Merci Watael, ça pourrait être une bonne idée. Sauf que la ligne de bus qui m'intéresse (475) n'y est pas car il n'est pas géré par la RATP.
Hors ligne
#7 Le 03/04/2022, à 19:24
- Watael
Re : [Résolu] wget ne récupère pas la page web
alors, change de ligne.
chromium --headless --dump-dom 'https://citymapper.com/paris/bus/stops/ParisStop_MairieDeMontrouge_NE' >/tmp/maireiMontrouge_NE.html
il semble que le citymapper reprenne simplement les informations* du PDF de SQY.
Dernière modification par Watael (Le 03/04/2022, à 20:46)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#8 Le 03/04/2022, à 21:47
- geneyop
Re : [Résolu] wget ne récupère pas la page web
Merci encore Watael pour cette suggestion.
En vérité, il y avait quelque chose que je n'avais pas dit (pour ne pas compliquer le post), c'est que ma commande doit tourner sur une Raspberry Pi Zero, donc avec très peu de ressource de calcul. C'est pourquoi j'aimerais passer par un outil simple comme wget plutôt que de lancer tout un navigateur.
Désolé de ne pas avoir été plus clair dès le départ...
Hors ligne
#9 Le 03/04/2022, à 22:10
- Watael
Re : [Résolu] wget ne récupère pas la page web
ni wget, ni curl, et aucun navigateur en mode texte, ne gèrent le javascript.
il n'y a q'elinks qui supporte JS, mais il faut le compiler soi-même pour ça.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#10 Le 03/04/2022, à 22:19
- beuguissime
Re : [Résolu] wget ne récupère pas la page web
Bonsoir,
J'obtiens ça
wget -U "Mozilla" -q -O - "https://citymapper.com/api/1/departures?headways=1&ids=ParisStop_MairieDeMontrouge_NE®ion_id=fr-paris" | jq .stops[0].services[0].next_departures
ce qui donne maintenant
[
"2022-04-04T06:17:00+02:00",
"2022-04-04T06:47:00+02:00"
]
Il faut installer jq
Hors ligne
#11 Le 03/04/2022, à 22:37
- Watael
Re : [Résolu] wget ne récupère pas la page web
\o/ bravo \o/
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#12 Le 03/04/2022, à 22:49
- beuguissime
Re : [Résolu] wget ne récupère pas la page web
Waouh, les bravos de Watael
Hors ligne
#13 Le 03/04/2022, à 23:05
- Watael
Re : [Résolu] wget ne récupère pas la page web
l'API n'est pas paramétrable pour obtenir du texte ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#14 Le 03/04/2022, à 23:36
- beuguissime
Re : [Résolu] wget ne récupère pas la page web
C'est-à-dire? Le json complet contient plusieurs champs mais je n'extrais que les heures des 2 prochains passages.
Hors ligne
#15 Le 03/04/2022, à 23:50
- Watael
Re : [Résolu] wget ne récupère pas la page web
l'adresse demande une page qui exécute une API (contrairement à l'adresse donnée par geneyop
.
peut-être, cette API possède-t-elle un paramètre, qui afficherait du texte, plutôt que du JSON, et qui pourrait être traité en shell ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#16 Le 03/04/2022, à 23:55
- geneyop
Re : [Résolu] wget ne récupère pas la page web
Whouahhh !
Bravo en effet.
Merci beaucoup Beuguissime.
Et, pour info, comment as-tu fait pour trouver cette nouvelle adresse ?
Hors ligne
#17 Le 03/04/2022, à 23:59
- beuguissime
Re : [Résolu] wget ne récupère pas la page web
Ah d'accord.
Je ne sais pas, la page donnée par geneyop appelle cette API. Je ne pense pas que ça a un intérêt pour les dev de prévoir ce cas car le JSON est plus facilement analysable grammaticalement que du texte. Une possibilité offerte par les API est de permettre de choisir les champs retournés mais je ne sais pas si cette API le permet ni quel serait le paramètre correspondant.
Là, on peut toujours ajouter [] à la fin de la commande que je propose et on n'obtient que deux lignes de texte, une pour chaque heure de passage.
Hors ligne
#18 Le 04/04/2022, à 00:02
- beuguissime
Re : [Résolu] wget ne récupère pas la page web
Whouahhh !
Bravo en effet.
Merci beaucoup Beuguissime.
Et, pour info, comment as-tu fait pour trouver cette nouvelle adresse ?
J'ai ouvert la console de débogage de Firefox et j'ai chargé la page que tu cites. Ensuite, il fallait un peu démêler les liens utiles des inutiles (dans l'onglet Réseau/Network). Rien ne disait que ça allait être fructueux.
Hors ligne
#19 Le 04/04/2022, à 00:21
- geneyop
Re : [Résolu] wget ne récupère pas la page web
En effet, c'était une bonne idée.
Merci encore pour ton aide.
Hors ligne
#20 Le 04/04/2022, à 00:23
- Watael
Re : [Résolu] wget ne récupère pas la page web
Je ne pense pas que ça a un intérêt pour les dev de prévoir ce cas car le JSON est plus facilement analysable grammaticalement que du texte.
quand même, parser du texte sans devoir recourir à un programme externe, c'est bien plus simple !
au moins, plus "direct" !
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne