Scruter une page web à la recherche des liens et des adresses mail

Soyez le premier à donner votre avis sur cette source.

Vue 10 869 fois - Téléchargée 592 fois

Description

c'est une petite application qui charge une page web et cherche chaque lien et chaque email pour les afficher dans des listeview. j'ai pris des fonctions que j'ai touvé ici sur le site csharpfr.com et je les ai modifié un peu et je les ai marié pour arrivé à ça :) en fin je n'ai fait que développer :)

Source / Exemple :


tout dans le zip

Conclusion :


reste à enlevé les doublant, mais, je préfere faire cette manipe quand j'insert dans une base de données.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

FREMYCOMPANY
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008
-
C'est marrant ca ;)
Ben oui, c'est possible en fait. J'avais pas pensé à intervertir le deux pour voir le résultat.

Et tu dois avoir raison, la regExp doit au final être compilée de manière semblable pour les deux expressions.

Donc on a trollé pour rien :)
cs_Zeroc00l
Messages postés
370
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010
-
Hum... A mon avis tu n'a pas fais assez de tour de boucle ...
Je ne dit pas ca parcque j'aime pas avoir tord pas du tout :)
J'ai converti ton code en C# (j'aime pas le VB desole)

static void Main(string[] args)
{
long score = 0;

Stopwatch w = new Stopwatch();
Regex e1 = new Regex("href=['"]?(.*)[> '"]");
Regex e2 = new Regex("href=(|'|")(.*)(>| |'|")");
string test = "Some text";

w.Reset();
w.Start();
for(int x = 0; x < 10000; ++x)
e1.Matches(test);
w.Stop();
score = w.ElapsedTicks;

w.Reset();
w.Start();
for(int x = 0; x < 10000; ++x)
e2.Matches("Some text");
w.Stop();
MessageBox.Show("Ma méthode " + score.ToString() + "\n" +
"Ta méthode " + w.ElapsedTicks.ToString());
}

J'obtiens n'importe quoi ...
Des fois ma méthode est 10 fois plus longues que la tienne !!!
Et si j'inverse e1 et e2 ca refait le meme résultat (en faveur de ma méthode :) )--> il doit y avoir un biais du langage
Des fois non, les résultats sont très similaires.
Donc j'augmente le nombre de tour de boucle (10 000 000)
La j'obtiens le résultat suivant : les deux sont vraiment très identiques
L'un surpassant l'autre (de très peu) à chaque fois que je relance...
Quand on y réfléchit c'est très logique !
Les graphes internes sont équivalents en terme de chemin !
Les résultats sont donc équivalents, cela dit je note que la première méthode testée subit toujours un petit temps supplémentaire par rapport à l'autre
(Ta méthode semblait être quelques millièmes (voire un centieme) plus rapide que la mienne mais quand j'ai inversé e1 et e2 c'est la tendance inverse que j'ai constaté)

Moralité : On (je ?) trolle pour rien :p
FREMYCOMPANY
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008
-
Désolé pour toi, mais en DotNet au moins, ma méthode est donnée plus rapide : +/-12000t à +/-6500t sur mon PC.

Voici mon code de test, qui me semble tout à fait équitable :

Dim w As New Stopwatch()
Dim e1 As New System.Text.RegularExpressions.Regex("href=['""]?(.*)[> '""]")
Dim e2 As New System.Text.RegularExpressions.Regex("href=(|'|"")(.*)(>| |'|"")")

w.Start()
For x As Integer = 0 To 10000
e1.Matches("[ Some text]")
Next
w.Stop()
MessageBox.Show(w.ElapsedTicks)
w.Reset()

w.Start()
For x As Integer = 0 To 10000
e2.Matches("[ Some text]")
Next
w.Stop()
MessageBox.Show(w.ElapsedTicks)
FREMYCOMPANY
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008
-
Vieille habitude de JavaScript, quand j'ai commencé à apprendre les regexp.
Au début j'utilisais souvent (|'|") et c'est resté. Quand j'utilse [], c'est pas pour faire des choix, mais bien pour faire des ranges [a-zA-Z0-9$_]*, ca me parait plus logique et plus proche de ce pourquoi il a été créé.

Mais bon c'est vrai que ['"]? fait le même travail que (|'|"), peut-être plus vite, ca reste à voir. Je vais faire un test et je te tiens au courrant

Par contre pour l'intérêt, je suis aussi de ton avis... Mais bon, c'est toujours utile de se trouver des objectifs inutiles pour tester ses connaissances et les approfondir...

De toute facon, l'intérêt majeur réside ici dans la recherche des liens, je pense...
cs_Zeroc00l
Messages postés
370
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010
-
Mon dieu que c'est laid (même sans réfléchir) ...
(|'|") est equivalent a ['"]?
et en plus ça ne capture pas (donc c'est plus rapide)
Voire même pour accelerer autant capturer les caractères (ou chaine) de début et de fin et les retirer lorsqu'on exploite le résultat de la regexp
Ca sera plus rapide aussi puisque que la regexp sera déterministe.

Sinon quel interêt de trouver des adresses mail dans une page
si ce n'est pour spammer ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.