Bonjour…
je veux extraire des informations sur le site : aquafortain.site https://www.programmefoot.com/widget
(programe foot) on utilisant la commande grep et sed je suis arrivé
à ce résultat
Aujourd'hui - vendredi 26 avril
20:00 Nancy AC Ajaccio
20:00 Valenciennes Niort
20:00 Orléans Troyes
20:00 Grenoble Foot 38 Béziers
20:00 Clermont Paris FC
20:00 Gazélec Ajaccio Sochaux
20:00 Châteauroux Le Havre
20:00 Red Star Metz
20:30 Augsbourg Bayer Leverkusen
20:45 Bordeaux Olympique Lyonnais
21:00 Liverpool Huddersfield Town
21:30 Rio Ave FC Porto
13:00 Athletic Bilbao Deportivo Alavés
13:30 Tottenham Hotspur West Ham United
15:00 Bologne Empoli
15:00 Brest Lens
..... ..... .....
le probleme c'est que j'arrive pas a intégrer la date et l'heur
athletic bilbao et Alaves se joue le samedi à 13.00
j'ai utilisé cette commande mais sa ne marche pas..
pour afficher la date a côté de l'heur
grep -o '><table><caption>\([^"<]*\)</caption><tbody><tr><td.*\([^"<]*\)</td><td'
code source :
Demain - samedi 27 avril
</caption><tbody><tr><td class="competition txtcenter hide-smartphone"><img src="https://images.programmefoot.com/competition/40x40/7.png" alt="Logo La Liga Santander"
/></td><td class="hour txtcenter">13:00</td><td class="match txtcenter"><span
# you can't parse html with regex
Posté par Krunch (site web personnel) . Évalué à 5.
https://stackoverflow.com/posts/1732454/revisions
Pour ce genre d'usage je recommande HTML::Parser (et possiblement WWW::Mechanize). Si tu insistes pour faire ça avec des regex, ça peut aider de faire passer le tout par html2text ou même just sed/awk avant d'essayer d'extraire ce qui t'intéresse.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: you can't parse html with regex
Posté par _kaos_ . Évalué à 5.
Salut :)
Tiens, il y a de l'écho par ici :)
Bon courage pour faire comprendre ça à l'OP, moi j'arrête ;)
Matricule 23415
[^] # Re: you can't parse html with regex
Posté par gUI (Mastodon) . Évalué à 4. Dernière modification le 27 avril 2019 à 10:57.
Oui, une façon assez sympa de récupérer les données d'une page web c'est de laisser faire les pros :
lynx <url> --dump
sort le rendu en texte brut, yapuka parser classiquement (awk
,sed
,grep
…).En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: you can't parse html with regex
Posté par mino60 . Évalué à -6. Dernière modification le 27 avril 2019 à 17:47.
je m'explique ma commande pour avoir l'heure c'est :
[^] # Re: you can't parse html with regex
Posté par _kaos_ . Évalué à 3.
Salut :)
Si tu veux essayer d'avancer, tu peux lire le Advanced Bash-Scripting Guide
Ça ne te donnera pas tout, pas le parsing HTML entre autre, mais des bases saines.
Pour ce qui est du tableau, aucun avis. C'est juste l'intitulé des pages de
man
, non ? J'ai même pas le courage de vérifier….Matricule 23415
[^] # Re: you can't parse html with regex
Posté par Marc Quinton . Évalué à 3. Dernière modification le 28 avril 2019 à 08:17.
pup (xpup) est ton ami : https://stackoverflow.com/questions/4994113/about-parsing-html-and-extract-data-using-shell
je pense qu'on a déja évoqué cette problématique plusieurs fois ici. Cela t'évitera d'avoir à apprendre un nouveau langage (python, ruby, …) et te permettra de parser le HTML de manière très puissante. Il y a cependant un effort à faire : apprendre a utiliser cet outil.
# grep -Po
Posté par palm123 (site web personnel) . Évalué à 2. Dernière modification le 27 avril 2019 à 20:59.
permet de prendre d'une chaine à une autre
echo "abc123def456"| grep -Po '(?=abc).*(?=def)'
abc123
la syntaxe est différente si tu veux ou pas la première ou dernière chaine
echo "abc123def456"| grep -Po '(?=abc).*(?<=def)'
abc123def
autre exemple
echo "abc123def456"| grep -Po '(?<=abc).*(?!=def)'
123def456
Recherche motifs prospectifs, en anglais regex lookahead assertion, lookbehind assertion
ウィズコロナ
[^] # Re: grep -Po
Posté par mino60 . Évalué à -7.
comment faire pour mettre chaque chainnes dans une ligne
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.