begin process at 2010 02 09 20:13:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > SCRUTER UNE PAGE WEB À LA RECHERCHE DES LIENS ET DES ADRESSES MAIL

SCRUTER UNE PAGE WEB À LA RECHERCHE DES LIENS ET DES ADRESSES MAIL


 Information sur la source

Note :
Aucune note
Catégorie :Réseaux & Internet Source .NET ( DotNet ) Classé sous :email, page, lien, scruter, parser Niveau :Débutant Date de création :06/02/2008 Vu / téléchargé :6 475 / 321

Auteur : developper_man

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
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 :)


 Conclusion

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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) HTTP FLOOD STRESS TEST par NightMareLmW
Source avec Zip Source avec une capture Source .NET (Dotnet) SERVEUR/ESCLAVE MODBUS TCP/IP par SteveFuchsIT
Source avec Zip Source avec une capture Source .NET (Dotnet) IPHELPER - PORTS TCP/UDP, TABLES DE ROUTAGE/ARP + FONCTIONS ... par Willi
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET3.5] SYSTEM.IO.PIPES - UTILISATION D'UN CANAL NOMMÉ par Willi
Source avec Zip Source .NET (Dotnet) MESSAGES PERSOS MSN par XelectroX

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOYER UN EMAIL MULTIDESTINATAIRE EN SMTP AVEC ACCUSÉ DE LE... par Nikachu
Source avec Zip Source .NET (Dotnet) VISTA ET LES LIENS SYMBOLIQUES par Willi
Source avec Zip Source avec une capture Source .NET (Dotnet) PARSEUR HTML par Yxion
Source avec Zip Source avec une capture Source .NET (Dotnet) PARSER HTML par thiosyiasar
Source avec Zip Source .NET (Dotnet) EXTRAIRE LES URL DES LIENS D'UNE PAGE HTML par JulSoft

Commentaires et avis

Commentaire de sebmafate le 06/02/2008 11:59:27 administrateur CS

mouaip... beaucoup de chose pour pas grand chose : 2 regex et le tour est joué :)

Commentaire de FREMYCOMPANY le 06/02/2008 12:06:40

2 regexp quand même pas.
Je penses qu'il en faudrait au moins 3/4.

Comme ca, sans réfléchir, je dirais :
Lien/images :/(href|src)=(|'|")([^ '"]*)( |\>|'|")/
CSS : /url\((|'|")([^'"]*)(|'|")\)/
Texte et/ou javascript : /(https?\:\/\/[^ ]*\s+|www\.[^ ]*\s+)/

Mais bon, faudrait approfondir et tester [:)]

Commentaire de developper_man le 06/02/2008 12:21:18

merci

Commentaire de Zeroc00l le 06/02/2008 18:32:16

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 ?

Commentaire de FREMYCOMPANY le 06/02/2008 22:36:54

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...

Commentaire de FREMYCOMPANY le 06/02/2008 22:41:42

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("<a href=1 href='2' href=""3"" href=4>Some text</a>")
Next
w.Stop()
MessageBox.Show(w.ElapsedTicks)
w.Reset()

w.Start()
For x As Integer = 0 To 10000
    e2.Matches("<a href=1 href='2' href=""3"" href=4>Some text</a>")
Next
w.Stop()
MessageBox.Show(w.ElapsedTicks)

Commentaire de Zeroc00l le 10/02/2008 02:13:58

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 = "<a href=1 href='2' href=\"3\" href=4>Some text</a>";

            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("<a href=1 href='2' href=\"3\" href=4>Some text</a>");
            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

Commentaire de FREMYCOMPANY le 10/02/2008 11:22:55

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 :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

lien dynamique à partir d'un datagrid [ par ramos_ramzy ] Bonjour à tous,J'ai un petit problème de lien. J'explique la situation:J'ai un datagrid. Une colonne de ce datagrid est composée d'une HyperLinkColumn Lien et bouton [ par ramos_ramzy ] Bonjour tout le monde,J'aimerai créer un bouton tout bête, dont l'action serai d'ouvrir une nouvelle page aspx, et dont l'adresse de cette page est dé ouverture d'un lien par programme [ par gama71 ] Salut,j'ai un petit probleme a résoudre et je sais pas par quel bout l'attaquer :sur un epage web dont j'ai l'url se trouve un "lien" sur le quel on c Response.Redirect [ par amirirn1 ] Bonjour à tous, je suis entrain de faire un site internet en Asp,j ai un GrilView qui contient des elements et sur chaques ligne j ai un lien pour une Problème avec un lien [ par woot6768 ] Je voudrais annoncer aux admins qu'il y a un bugg sur le lien 'thèmes' ou 'liste des thèmes' pour accéder au forum.Je précise bien que le problème n'e Lien dans une infobulle (tooltip) [ par NooD ] Bonjour à tous et à toutes,J'aimerais savoir s'il était possible d'intégrer un lien dans un infobulle si oui comment ?Je précise que le lien doit être ouverture d'un lien sur un site web par application [ par gama71 ] Bonjour, je suis toujours coincé par un probleme d'ouverture d'un lien qui devrait etre ouvert par mon application.Sur un site web il y a un lien sur la mise en page dans visual web developer 2005 express [ par ad_sayouri ] Salut!je suis entrain de développer une application intranet avec visual web developer 2005 express et j'ai rencontré certains problèmes inhabituels ( Détecter le piratage en brute force sur la page login [ par Cipoli ] Bonjour a tous, Merci d'avance pour votre aide. Je ne recherche pas forcément une solution toute prête. Un principe de réalisation me conviendrai.


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,109 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales