Bonjour,
je suis en train de développer une fonction pour mon programme qui permet d'analyser le texte d'une page web en téléchargent le code source de la page et en comparant ce dernier avec une liste de mot. J'utilise l'API de Fiddler qui est un proxy qui récupère toutes les URL's qui transitent sur le PC, le problème c'est que cette API récupère toutes les URL's, c'est à dire que dans ma RichTextbox les URL's contenant les png, jpg, js ... sont affichées. Ainsi, par exemple pour la page d'accueil de Developpez.com, je récupère une cinquantaine d'URL's. Le problème c'est que mon programme n'est pas capable de traiter tant de requêtes, et surtout des requêtes inutiles car un .js, png, jpg ... Ne peut pas être analysé en tant que texte...
Il faudrait donc que ma RichTextbox n'affiche que les vraies URL's comme par exemple : http://www.developpez.com/, ou que mon programme soit capable de créer un nouveau webclient pour chaque URL dans la RichTextbox.
Pensez-vous que c'est possible ?
J'espère que quelqu'un pourra m'aider car cela fait des semaines que je cherche plusieurs heures par jours comment résoudre le problème.
Je vous met le lien de l'API FiddlerCore, mon code source et le projet.
Merci de votre aide !
http://fiddler2.com/fiddlercore
https://dl.dropboxusercontent.com/u/...dlerCoreVB.zip
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Option Explicit On
Imports Fiddler
Imports System.Net
Imports System.IO
 
Public Class Form1
 
    Dim url As String = Nothing
    Public Sub New()
 
        ' This call is required by the designer.
        InitializeComponent()
 
        ' Add any initialization after the InitializeComponent() call.
 
        AddHandler FiddlerApplication.BeforeResponse, AddressOf FiddlerBeforeResponseHandler
        AddHandler FiddlerApplication.BeforeRequest, AddressOf FiddlerBeforeRequestHandler
 
        AddHandler Application.ApplicationExit, AddressOf ShutdownFiddlerApp
 
        Dim oFlags As FiddlerCoreStartupFlags = FiddlerCoreStartupFlags.Default
        FiddlerApplication.Startup(0, oFlags)
        MsgBox("Started proxy on port " & FiddlerApplication.oProxy.ListenPort)
    End Sub
 
    Private Sub ShutdownFiddlerApp()
        FiddlerApplication.Shutdown()
        MsgBox("Unloaded proxy")
        Threading.Thread.Sleep(1000)
 
    End Sub
 
    Private Sub FiddlerBeforeRequestHandler(ByVal tSession As Session)
        RichTextBox1.BeginInvoke(New AsyncMethodCaller(AddressOf AddText), tSession.fullUrl)
        url = tSession.ToString
    End Sub
 
    Private Sub FiddlerBeforeResponseHandler(ByVal tSession As Session)
 
 
    End Sub
 
    Public Sub Verification()
        Try
 
            Dim webClient As New System.Net.WebClient
            Dim result As String = webClient.DownloadString(url)
            Dim client As WebClient = New WebClient()
            Dim data As Stream = client.OpenRead(url)
            Dim reader As StreamReader = New StreamReader(data)
            Dim Page As String = reader.ReadToEnd
            ListeMot.AddRange(IO.File.ReadAllLines("C:\Users\Clément\Documents\ListeDeMots.txt"))
            MsgBox(Page)
            Dim found As Boolean = False
            For Each s As String In ListeMot
                If Page.ToLower.Contains(" " & s.ToLower & " ") Then
                    MsgBox("Un mot interdit a été détecté :" & s)
                End If
 
            Next
        Catch
        End Try
    End Sub
    Dim ListeMot As New List(Of String)
 
    Private Sub AddText(sText As String)
 
        RichTextBox1.AppendText(sText & vbCrLf)
        Dim Thread As New Threading.Thread(AddressOf Verification)
        Thread.Start()
 
    End Sub
 
    Protected Overrides Sub Finalize()
        MyBase.Finalize()
    End Sub
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
    End Sub
End Class
 
Public Delegate Sub AsyncMethodCaller(sText As String)