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