re captcha anzeigen in vb.net?

10/24/2013 22:21 Mithrandir.#1
Hey Leute, ich möchte einen Bot coden nur muss man da natürlich immer ein Captcha eingeben, so sieht das captcha aus:

[Only registered and activated users can see links. Click Here To Register...]

Ich würde es gerne in einer picture box anzeigen lassen und den Code in einer TextBox eingeben... Leider habe ich schon paar Sachen probiert und nix hat funktioniert? Argh :/

Ich hoffe es kommen jetzt nicht wieder irgendwelche dummen Kommentare das ich es alleine versuchen soll bla bla, das es nicht schwer ist etc. Ich suche wie gesagt einfach jemanden der nett ist und mir das ein bisschen näher bringen möchte. Ich verlange nicht die ganze Source^^

ich habe gehört mit regex soll es klappen, leider habe ich keinen Plan davon :(
10/24/2013 22:43 c0w#2
also ich kann kein vbnet, aber generell musst du den captchalink aus der html rausfinden, über die selbe session das bild saugen und einbinden
10/24/2013 22:50 Luxxus²#3
Codest du den Bot mit HttpWebRequest oder mit einem Webbrowser Element?

Was du machen musst ist eigentlich ganz einfach, du suchst die im quelltext die bestimmte id des recaptcha Bildes, nun regext du die URL hinter src raus.

Best regards
10/24/2013 22:51 Mithrandir.#4
ja das saugen und einbinden ist das problem :(

Die Seite ist:
[Only registered and activated users can see links. Click Here To Register...]

Ich hoffe ich kann sie hier posten.. sucht euch einfach einen Link der hier zB
[Only registered and activated users can see links. Click Here To Register...]

Nur wie macht man das nun ist die Frage

Das bekomme ich mit Live HTTP Headers raus:

10/24/2013 23:05 b0tterk2#5
Du muss erstmal den Link zum Captcha rausbekommen.
Das geht so:

Im Quelltext suchst du nach "http://www.google.com/recaptcha/api/challenge?k="

Hinter k= steht eine Nummer. Du gehst auf "http://www.google.com/recaptcha/api/challenge?k=XXXXXXXXXXXXXXXXXXXXXXXXXX".

Hier liest du den Wert "challenge : '" aus. Dann hast du schon den Link zum Captcha, der aus dem zusammen besteht:

"http://www.google.com/recaptcha/api/image?c=" & challenge

challenge ersetzt du durch die Nummer, die du ausgelesen hast.
10/24/2013 23:13 Mithrandir.#6
So ist der komplette Code;

[Only registered and activated users can see links. Click Here To Register...]

challenge wäre also;

03AHJ_VuuRZ1sTiPeST2nOc6f8BGI67smTYTKicJ7irPwfb24j 4b60ED-AcWwD5fFPz5NZtEvDjP3qBX_XZBhBkBwgyYHg3c0n7h9bSzEN3 fOM5J-EMp5ZVewAfV_Cl867I3EnO4GP-3RpqIRNMlLLGiYez-F7vW4oieirdKWVQLJG8DylmikQPr8

Aber was muss ich nun machen, HttpWebRequest wäre wohl am besten, oder?
10/24/2013 23:27 b0tterk2#7
Du hast den Link falsch zusammengesetzt.
Sieht so aus mit deinen Daten:
[Only registered and activated users can see links. Click Here To Register...]

Und ja mit HTTPWebRequest, RegEx und Cookies. Die Cookies werden das größte Problem sein.
10/24/2013 23:52 Mithrandir.#8
Wäre das denn so richtig?

Code:
Imports System.Text.RegularExpressions

Public Class Form1

    Dim div As String = WebBrowser1.Document.GetElementById("recaptcha_image").InnerHtml
    Dim url() As String = Regex.Split(Regex.Split(div, "scr=\""")(0), "\""")
    PictureBox1.Load(url(3))

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WebBrowser1.Navigate(TextBox1.Text)
    End Sub
End Class
10/28/2013 00:57 Luxxus²#9
Wollte so klappen, schmeiß die Sachen mal in ein Button Event und Klick dann einfach mal auf den Button.

Die Form class kann damit 0 anfangen.

Jedoch klappt das auch nur, wenn du das alles über nen Webbrowser machst und nicht über httpwebrequest, bei httpwebrequests müsstest du so arbeiten, wie b0tterk2 das schon ganz gut erklärt hat.
10/31/2013 10:45 DeinMud#10
Mal ne Frage, ich hatte selbst versucht einen Bot zu schreiben mit Captcha Eingabe etc. (httpwebrequest)
Das filtern des Captchas und Anzeigen war kein Problem, doch um das Captcha anzeigen zu lassen musste ich die Antwort auslesen & dort mit Regex halt den Captcha link filtern. Dannach konnte ich jedoch nicht mehr in den Stream schreiben & einen neuen Request zu senden ginge auch nicht da sich dann das Captcha ändern würde. Wie müsste ich da den vorgehen?
10/31/2013 13:07 tolio#11
^ da hattest du schonmal nen thread drüber und dort wurde die frage beantwortet, lerne was du da machst dann erklärt sich das alles von selber, dauert ein zwei stunden und schon kannste dein projekt weiterführen
10/31/2013 13:39 DeinMud#12
Ne eben nicht, hast mir gesagt dass es nicht möglich sei.
Hier in dem Thread meinen aber welche es sei möglich
10/31/2013 13:41 tolio#13
falsch, ich hab gesagt es geht nicht so wie du dir das vorstellst weil das http protokol so nicht funktioniert. wie es funktioniert:
seite laden, captcha laden, captcha lösen, wieder abschicken. fertig. GANZ genau so macht es der browser auch
10/31/2013 13:48 DeinMud#14
Um das captcha zu lösen brauch ich das Captcha aus dem Quelltext &
da komm ich nicht ran.
10/31/2013 13:53 tolio#15
das ist ne ganz andere problematik. bei sowas hilft warscheinlich nur üben, oder jemanden bezahlen ders für dich löst