[regexp] Google URL seulement
Fermé
Gihef
Messages postés
5150
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
20 février 2023
-
27 août 2006 à 19:15
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 29 août 2006 à 09:10
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 29 août 2006 à 09:10
A voir également:
- [regexp] Google URL seulement
- Google maps satellite - Guide
- Dns google - Guide
- Lien url - Guide
- Google earth - Télécharger - 3D
- Google - Guide
12 réponses
Gihef
Messages postés
5150
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
20 février 2023
2 778
27 août 2006 à 19:27
27 août 2006 à 19:27
En fait le motif est plutôt :
“\→ <br />”
“\→ <br />”
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 août 2006 à 21:36
27 août 2006 à 21:36
Salut,
j'ai regardé les 2 messages mais pour dire la verité je n'ai pas très bien compris.
Pourquoi?
En général dans le parsing d'un fichier c'est bien d'avoir l'entrée - le traitement - la sortie.
Je crois que les tests que tu fait sont plutôt ponctuels (corrige moi si je me trompe) donc donnée une solution généralisée ce n'est pas si simple.
Par exemple avec Perl tu as des modules sur Cpan pour manipuler des données html.
Les liens on les trouves dans les balises <a href=".....">lien</a>
Donc dans l'absolu tu n'as qu'à récuperer ce que tu trouve entre guillements.
Il faut pourtant tenir compte des pièges. La gourmandise et l'impatience d'une regex (je n'aime pas trop regexp).
lami20j
j'ai regardé les 2 messages mais pour dire la verité je n'ai pas très bien compris.
Pourquoi?
En général dans le parsing d'un fichier c'est bien d'avoir l'entrée - le traitement - la sortie.
Je crois que les tests que tu fait sont plutôt ponctuels (corrige moi si je me trompe) donc donnée une solution généralisée ce n'est pas si simple.
Par exemple avec Perl tu as des modules sur Cpan pour manipuler des données html.
Les liens on les trouves dans les balises <a href=".....">lien</a>
Donc dans l'absolu tu n'as qu'à récuperer ce que tu trouve entre guillements.
Il faut pourtant tenir compte des pièges. La gourmandise et l'impatience d'une regex (je n'aime pas trop regexp).
lami20j
Gihef
Messages postés
5150
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
20 février 2023
2 778
28 août 2006 à 19:00
28 août 2006 à 19:00
Bonjour,
“je n'ai pas très bien compris”, ça me rassure car ‘je débute’ (-:
J'aime traiter des données, du texte et ces outils, que je découvre, grep, sed, awk… me plaisent. Perl encore plus, mais je n'en suis pas encore là.
“les tests que tu fait sont plutôt ponctuels”. En effet et je l'indique ‘il faudra adapter’. Ça ne fonctionne que dans l'environnement (Google) que je cite.
La piste que je propose évite d'avoir à écrire un script (une future étape, peut-être ? Du type shell script qui semble plutôt adapté. Ou en Perl, mais plus tard encore.)
Je suis donc contraint, avec l'outil dont je dispose, de traiter dans le fichier (pas de sortie) et donc d'enlever tout ce qui est en trop. Et en un seul passage*.
J'aurais préféré pouvoir récupérer les <a class=l href="…> et les envoyer ailleurs.
En voilà des contraintes.
* paulau profil paulau n'a pas enregistré de profil et c'est son seul message. J'ai supposé qu'il est un utilisateur de Windows de base (?)
+ “des modules sur Cpan” c'est-à-dire ?
“je n'ai pas très bien compris”, ça me rassure car ‘je débute’ (-:
J'aime traiter des données, du texte et ces outils, que je découvre, grep, sed, awk… me plaisent. Perl encore plus, mais je n'en suis pas encore là.
“les tests que tu fait sont plutôt ponctuels”. En effet et je l'indique ‘il faudra adapter’. Ça ne fonctionne que dans l'environnement (Google) que je cite.
La piste que je propose évite d'avoir à écrire un script (une future étape, peut-être ? Du type shell script qui semble plutôt adapté. Ou en Perl, mais plus tard encore.)
Je suis donc contraint, avec l'outil dont je dispose, de traiter dans le fichier (pas de sortie) et donc d'enlever tout ce qui est en trop. Et en un seul passage*.
J'aurais préféré pouvoir récupérer les <a class=l href="…> et les envoyer ailleurs.
En voilà des contraintes.
* paulau profil paulau n'a pas enregistré de profil et c'est son seul message. J'ai supposé qu'il est un utilisateur de Windows de base (?)
+ “des modules sur Cpan” c'est-à-dire ?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
28 août 2006 à 20:11
28 août 2006 à 20:11
Salut,
J'aurais préféré pouvoir récupérer les <a class=l href="…> et les envoyer ailleurs.
Je n'aime pas trop d'écrire des regex sans avoir un vision de ce que je cherche.
Dans ton cas la question que je me pose est :
tu veux récuperer les <a class=l href="…> ou supprimer les NON <a class=l href="…>?
CPAN = Comprehensive Perl Archive Network
https://www.cpan.org/
http://www.cpan.org/modules/index.html
lami20j
J'aurais préféré pouvoir récupérer les <a class=l href="…> et les envoyer ailleurs.
Je n'aime pas trop d'écrire des regex sans avoir un vision de ce que je cherche.
Dans ton cas la question que je me pose est :
tu veux récuperer les <a class=l href="…> ou supprimer les NON <a class=l href="…>?
CPAN = Comprehensive Perl Archive Network
https://www.cpan.org/
http://www.cpan.org/modules/index.html
lami20j
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Gihef
Messages postés
5150
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
20 février 2023
2 778
28 août 2006 à 20:34
28 août 2006 à 20:34
Merci.
Je veux en effet supprimer tout ce qui n'est pas des href.
Et, tant qu'à faire, ne conserver qu'une seule référence à la même adresse. Et les “class=l” en sont une.
En effet, dans https://www.google.fr/search?as_q=regexp&num=100&hl=fr&lr=lang_fr&gws_rd=ssl Google cite 3 fois la même référence et celle en “class=l” semble être la plus simple à traiter
Remarque, ils sont sympas, il mettent des repères <!--a--> ou <!--z--> etc. et leur mise en page en CSS fournit des classes comme <p class=g> <a class=fl href="… Je m'en suis servi dans moteur de recherche extraction selective
(<!--a--><div>… ou (<a class=l href=")
Veux-tu que je tente de t'indiquer à quoi (je suppose !) correspondent mes motifs ?
(<!--a--><div><p [\W\w\s]*?|<table [\W\w\s]*?)(<a class=l href=")(.*?)(">)[\W\w\s]*?(</a>)|(</a>[\W\w\s\D]*?Google</font>)
Je veux en effet supprimer tout ce qui n'est pas des href.
Et, tant qu'à faire, ne conserver qu'une seule référence à la même adresse. Et les “class=l” en sont une.
En effet, dans https://www.google.fr/search?as_q=regexp&num=100&hl=fr&lr=lang_fr&gws_rd=ssl Google cite 3 fois la même référence et celle en “class=l” semble être la plus simple à traiter
<a class=l href="http://www.expreg.com/memo.php">REGEX - <b>REGEXP</b> - Expressions régulières en PHP - Aide-mémoire</a>Les autres sont “En cache” ou “Pages similaires”.
Remarque, ils sont sympas, il mettent des repères <!--a--> ou <!--z--> etc. et leur mise en page en CSS fournit des classes comme <p class=g> <a class=fl href="… Je m'en suis servi dans moteur de recherche extraction selective
(<!--a--><div>… ou (<a class=l href=")
Veux-tu que je tente de t'indiquer à quoi (je suppose !) correspondent mes motifs ?
(<!--a--><div><p [\W\w\s]*?|<table [\W\w\s]*?)(<a class=l href=")(.*?)(">)[\W\w\s]*?(</a>)|(</a>[\W\w\s\D]*?Google</font>)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
28 août 2006 à 22:00
28 août 2006 à 22:00
Re,
Voilà ce que ça donne en Perl (je répète, c'est superficiel)
J'ai sauvegarder le code source dans gihef.txt
Voilà ce que ça donne en Perl (je répète, c'est superficiel)
J'ai sauvegarder le code source dans gihef.txt
#! /usr/bin/perl # use strict;use warnings; open FIC,"gihef.txt" or die "E/S : $!\n"; while ( <FIC> ) { print $1,"\n" if /<a\s*class=l\s*href="(http:\/\/.*?)">/g; }lami20j
Gihef
Messages postés
5150
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
20 février 2023
2 778
28 août 2006 à 22:27
28 août 2006 à 22:27
Ça marche.
Je l'ai enregistré dans le dossier prévu pour les scripts de TW en convertissant les fins de lignes pour Unix et hop…
Et puis, comme “c'est superficiel”, je comprends.
Tu pourrais me faire le même mais en me conservant un doc. html ?
C'est à dire avec des liens cliquables.
Du genre :
Tu vois. Chaque adresse reprise commme texte du lien.
Faut vraiment que je me mette à Perl (-:
Je l'ai enregistré dans le dossier prévu pour les scripts de TW en convertissant les fins de lignes pour Unix et hop…
Et puis, comme “c'est superficiel”, je comprends.
Tu pourrais me faire le même mais en me conservant un doc. html ?
C'est à dire avec des liens cliquables.
Du genre :
<html><head>…<body> <a href="http://www.expreg.com/">http://www.expreg.com/</a> … </html>
Tu vois. Chaque adresse reprise commme texte du lien.
Faut vraiment que je me mette à Perl (-:
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
28 août 2006 à 22:36
28 août 2006 à 22:36
#! /usr/bin/perl # use strict;use warnings; open FIC,"gihef.txt" or die "E/S : $!\n"; print "<html><head>..<head>\n"; print "<body>"; while ( <FIC> ) { print "<a href=\"$1\">$1</a>","\n" if /<a\s*class=l\s*href="(http:\/\/.*?)">/g; } print "</body>\n</html>\n";lami20j
Gihef
Messages postés
5150
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
20 février 2023
2 778
28 août 2006 à 22:42
28 août 2006 à 22:42
En essayant, ça ne pourrait pas ressembler à :
J'essaye.
print "<a>",$1,"\">",$1,</a>",\n" if /<a\s*class=l\s*href="(http:\/\/.*?)">/g;?
J'essaye.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
28 août 2006 à 22:46
28 août 2006 à 22:46
Non,puisque la partie href= ne setrouve pas dans $1
lami20j
lami20j
Gihef
Messages postés
5150
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
20 février 2023
2 778
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
28 août 2006 à 22:50
28 août 2006 à 22:50
En effet, j'ai été une peu vite.
En corrigeant, j'ai fait ça :
En corrigeant, j'ai fait ça :
print "<a href=\">",$1,"\">",$1,"</a>","\n" if /<a\s*class=l\s*href="(http:\/\/.*?)">/g;
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
Gihef
Messages postés
5150
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
20 février 2023
28 août 2006 à 22:56
28 août 2006 à 22:56
Je ne sais pas pourquoi tu veux donner une liste au print quand une chaine fait l'affaire? Mais t'est libre de faire comme bon te semble.
En revanche ce n'est pas bon non plus.
href="...
et chez toi je vois
href=">....
lami20j
En revanche ce n'est pas bon non plus.
href="...
et chez toi je vois
href=">....
lami20j
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
28 août 2006 à 22:45
28 août 2006 à 22:45
J'ai fait exactement ce genre de chose en Python, justement:
https://sebsauvage.net/python/snyppets/index.html#google_search
ça ne ramène les liens, et que les liens.
et ça parcours automatiquement les pages de résultat.
Libre à vous de réutiliser le source ou juste la regex.
https://sebsauvage.net/python/snyppets/index.html#google_search
ça ne ramène les liens, et que les liens.
et ça parcours automatiquement les pages de résultat.
Libre à vous de réutiliser le source ou juste la regex.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
28 août 2006 à 22:48
28 août 2006 à 22:48
Salut,
merci.
Comme je l'ai déjà dit, un jour je me mettrai au python.
Le code je peux le comprendre, mais pour l'instant je n'ai pas vraiment le temps de commencer ;)
Tu sais que les Perliens sont des paresseux ;)
lami20j
merci.
Comme je l'ai déjà dit, un jour je me mettrai au python.
Le code je peux le comprendre, mais pour l'instant je n'ai pas vraiment le temps de commencer ;)
Tu sais que les Perliens sont des paresseux ;)
lami20j
Gihef
Messages postés
5150
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
20 février 2023
2 778
28 août 2006 à 23:09
28 août 2006 à 23:09
Merci à vous,
On pourrait finir en chanson :
“… You know, my Python boot is too tight
I could'nt get it off last night
A week went by
And now it's July
I finally got it off
And my girlfriend cried
You've got…”
… à votre avis ?
On pourrait finir en chanson :
“… You know, my Python boot is too tight
I could'nt get it off last night
A week went by
And now it's July
I finally got it off
And my girlfriend cried
You've got…”
… à votre avis ?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
28 août 2006 à 23:22
28 août 2006 à 23:22
Oui pas mal,
mais je pense toujours au perles qu'aux serpents
Regarde ça https://en.wikipedia.org/wiki/Black_Perl
Et je reste toujours avec l'opinion que la lisibilité du langage depends de celui qui écrit le code et pas de langage lui même.
Maintenant il nous reste qu'à comprendre les mots.
Une calligraphie japonaise est très lisible, mais celui qui ne comprends pas les mot, peut-il dire que c'est ilisible?
De même pour le regex, et en fait pour n'importe quel langage.
lami20j
P.S. Voilà un lien cadeau https://docstore.mik.ua/orelly/bookshelfs.html
mais je pense toujours au perles qu'aux serpents
Regarde ça https://en.wikipedia.org/wiki/Black_Perl
Et je reste toujours avec l'opinion que la lisibilité du langage depends de celui qui écrit le code et pas de langage lui même.
Maintenant il nous reste qu'à comprendre les mots.
Une calligraphie japonaise est très lisible, mais celui qui ne comprends pas les mot, peut-il dire que c'est ilisible?
De même pour le regex, et en fait pour n'importe quel langage.
lami20j
P.S. Voilà un lien cadeau https://docstore.mik.ua/orelly/bookshelfs.html
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
29 août 2006 à 09:10
29 août 2006 à 09:10
oohh.... joli !
Je suis impressionné.
Je suis impressionné.
Gihef
Messages postés
5150
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
20 février 2023
2 778
28 août 2006 à 23:31
28 août 2006 à 23:31
Merci.