Hi Leute.
Es wäre nett wenn mir Jemand bei der Portierung von vb.net nach Delphi unter die Arme greifen könnte.
Ich versuche einen Proxygrabber zu schreiben. hidemyass.com ist eine gute Seite
NUn, hier habe ich auf die schnelle etwas in VB.NET gekritzelt. (Bitte nicht schimpfen, es dient nur dem Zweck ein Ergebnis zu haben). Code teilweise nicht von mir.
Imports System.Text.RegularExpressions
Imports System.Net
Public Class Form1
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
GetProxy(CStr(1), CStr(1))
End Sub
Private Function GetProxy(ByVal siteid As String, ByVal page As String) As List(Of String)
Dim HttpRequest As New HttpRequest
HttpRequest.GET("http://www.hidemyass.com/proxy-list/" & 1)
Dim result As String = HttpRequest.Result
Try
Dim MehrereTreffer As New Regex("<tr class="".*?"" rel=""\d+?"">([\s\S]+?)</style>([\s\S]+?)<td>\s(\d+)</td>", RegexOptions.Compiled Or RegexOptions.IgnoreCase)
Dim TrefferGruppe As MatchCollection = MehrereTreffer.Matches(result)
For Each Treffer As Match In TrefferGruppe
Dim Groups As GroupCollection = Treffer.Groups
Dim Input As String = Treffer.Groups.Item(2).Value
'***********************************************************
'Bis hier habe ich es schon nach delphi portiert
'***********************************************************
Dim match2 As Match
For Each match2 In Regex.Matches(Treffer.Groups.Item(1).Value, "\.(.+?)\{(.+?)\}")
Input = Input.Replace(String.Format("class=""{0}""", match2.Groups.Item(1).Value), String.Format("style=""{0}""", match2.Groups.Item(2).Value))
Next
'***********************************************************
'Bis hier sollte ich es auch noch schaffen.
'Die untere Zeile kriege ich noch nicht hin
'***********************************************************
Input = String.Format("{0}:{1}", Regex.Replace(Input, "<(div|span) style=""display:none"">.*?</(div|span)>|<[.*]+^>|\s", ""), Treffer.Groups.Item(3).Value)
'***********************************************************
'Das ist nicht die Art Daten einzutragen, ich wollte nur ein Ergebnis haben.
'***********************************************************
ListBox1.Items.Add(Input)
Next
Catch ex As Exception
End Try
End Function
End Class
Falls sich Jemand damit beschäftigen möchte, hier der Anfang in Delphi
Im Endeffekt fehlen mir die Kenntnisse für RegEx
procedure TForm1.Button6Click(Sender: TObject);
var
Quelltext : String;
Treffer : String;
I : Integer;
Succ : Boolean;
begin
Quelltext := Memo1.Text; //Quelltext von der hidemyass.com Seite
Memo2.Clear;
i := 0;
with TRegExpr.Create do
try
ModifierG := false;
InputString := Quelltext;
Expression := '<tr class=".*?" rel="\d+?">(.*)<\/style>(.*)<td>\s(.*)<\/td>';
Succ := Exec;
while Succ do
begin
i := i +1;
Treffer := Match[0] ;
Succ := ExecNext;
Memo2.Lines.add(Inttostr(i));
Memo2.Lines.add(Treffer);
end;
finally
Free;
end;
end;
Ich hoffe es interessiert Jemanden der mir helfen kann.