Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 21:30

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Captcha abfragen

Discussion on Captcha abfragen within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1

 
Hype's Avatar
 
elite*gold: 14
The Black Market: 137/0/0
Join Date: May 2013
Posts: 4,288
Received Thanks: 1,477
Captcha abfragen

Es geht um folgendes:

Ich möchte eine Captcha von einer Website(ok.de) auslesen.
Da ich eine Registrierung per HtmlWebRequest abschicken möchte, kommt für mich kein normaler WebBrowser in Frage.
Soweit habe ich alles schon gemacht, den HTML Code habe ich mir nun genau angeschaut.
Die einzigen beiden Links, die mit dem Captcha zutun haben, sind folgende:

HTML Code:
<script type="text/javascript" src="https://www.google.com/recaptcha/api/challenge?k=6LeTItQSAAAAAMMAMVABUkh53Qp84ni9wVr1B4Yr"></script>
und

HTML Code:
<iframe src="https://www.google.com/recaptcha/api/noscript?k=6LeTItQSAAAAAMMAMVABUkh53Qp84ni9wVr1B4Yr" height="300" width="500" frameborder="0"></iframe><br/>
Nun... diese Links kann ich zwar mit RegEx auslesen, jedoch wird man, wenn man auf diese Links mal klickt feststellen, dass man dort keine Bilder findet...
Wenn ich über einen normalen Browser(Chrome, Firefox etc.) auf die Seite ok.de gehe und einen Rechtsklick auf das Captcha mache, kann man sich die Bild-Url kopieren oder das Bild in einem neuen Tab anzeigen lassen.
Genau diesen Link brauche ich aber in meiner VB Anwendung, doch dieser ist nur über den normalen Quelltext der Seite zu bekommen. (Nicht der HTML Text durch HtmlWebRequest)

Kann mir jemand erklären, wie ich an den normalen Quelltext rankomme?
Danke

Mfg
Hype is offline  
Old 11/14/2014, 18:01   #2


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Das wird der selbe Link sein, ich bezweifle das dort mit JS etwas geändert wird. Problematisch ist nur, das du vermutlich ohne Cookies darauf gehst weshalb du dann kein Bild angezeigt bekommst.

Übrigens: Finger weg von RegEx in solchen Fällen. Mach das gleich mit einem gescheiten HTML Parser, HtmlAgilityPack zum Beispiel.
Mostey is offline  
Old 11/14/2014, 19:34   #3

 
Hype's Avatar
 
elite*gold: 14
The Black Market: 137/0/0
Join Date: May 2013
Posts: 4,288
Received Thanks: 1,477
In Bezug auf die Cookies: Ich benutze einen CookieContainer; muss ich den beim Aufrufen des Captcha Links auch mit schicken?

Regex soll ja Schwierigkeiten mit HTML's haben, jedoch muss ich in dem Fall nur den Link aus dem Code bekommen, das funktioniert ja noch ganz gut.
Mit HtmlAgilityPack beschäftige ich mich später gerne mal
Hype is offline  
Old 11/14/2014, 23:22   #4
 
elite*gold: 0
Join Date: Mar 2012
Posts: 15
Received Thanks: 0
Red face So würd und habe ich es gemacht

Entweder es liegt an mir oder an dir...
Aber egal mit welchem Broweser ich den link des Bildes aufrufe sehe ich auch ein Bild.
_
-
Also, entweder du machst es kompliziert, ich bin jetzt mal auf deinen Code eingegangen...
Du rufst die Seite aus, die du ausgelesen hast, auf dieser ließt du den Link zum Bild aus und lädst den Link z.B in eine PictureBox, hier mal ein Bild:

-
Ich "habe" als ich ein Mail Account Generator einfach einen Webbrowser benutzt (ja ich hab gelesen, dass du ihn nicht nutzen willst) und hab mir über die ID den Link für das Bild geholt. Du kannst den Webbrowser ja einfach unvisible machen und den Link in einem string speichern...
Hier noch ein Bild:



Tim

Edit:
Hier mal ein Tipp in VB Code:
Code:
WebBrowser1.Document.GetElementById("recaptcha_challenge_immage").TextContent
123Tim321 is offline  
Old 11/14/2014, 23:50   #5
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
erstmal den webbrowser müll in die tonne treten, webrequests ist da schon der richtige ansatz.
anschließened http verstehen dann ergibt sich das ganze auch, stichwort cookies.
hätte ich schon heute nacht was schreiben wollen, dann dachte ich mir cross forum poster kann man ruhig mal warten lassen
tolio is offline  
Thanks
1 User
Old 11/14/2014, 23:57   #6

 
Hype's Avatar
 
elite*gold: 14
The Black Market: 137/0/0
Join Date: May 2013
Posts: 4,288
Received Thanks: 1,477
@tolio: In Vb paradise gab es ja ein paar Komplikationen in Bezug auf die Möglichkeit der Erstellung eines Bots. Da dort um die Uhrzeit wirklich wenig Leute online waren, habe ich es hier nochmal probiert, da ich gestern Abend noch die Funktion mit dem Captcha auslesen fertig machen wollte.

Dann werde ich das ganze mal mit Cookie probieren, danke



Quote:
Originally Posted by 123Tim321 View Post
[...]
Ich "habe" als ich ein Mail Account Generator einfach einen Webbrowser benutzt (ja ich hab gelesen, dass du ihn nicht nutzen willst) und hab mir über die ID den Link für das Bild geholt. Du kannst den Webbrowser ja einfach unvisible machen und den Link in einem string speichern...
[...]
Wenn ich die Regipage mit 2 versch. Wegen aufrufe, bekomme ich 2 verschiedene Captcha's. Das wäre nicht wirklich hilfreich, weil der Benutzer nur den Captcha des Webbrowsers beantworten kann, jedoch ist dieser nicht derselbe, den ich durch HttpWebRequest bekomme
Hype is offline  
Old 11/15/2014, 16:51   #7
 
elite*gold: 0
Join Date: Mar 2012
Posts: 15
Received Thanks: 0
Quote:
Originally Posted by Tadashi' View Post
Wenn ich die Regipage mit 2 versch. Wegen aufrufe, bekomme ich 2 verschiedene Captcha's. Das wäre nicht wirklich hilfreich, weil der Benutzer nur den Captcha des Webbrowsers beantworten kann, jedoch ist dieser nicht derselbe, den ich durch HttpWebRequest bekomme
Stimmt, hab ich voll vergessen .
123Tim321 is offline  
Old 11/17/2014, 13:03   #8
 
elite*gold: 0
Join Date: Nov 2014
Posts: 1
Received Thanks: 0
Es mit einem Webbrowser Control zu machen wäre meiner Meinung nach nicht sehr optimal, da es dadurch sehr langsam wird.

Es ist meiner Meinung nach eigentlich ganz einfach an die Bilder zukommen. Hier einmal erklärt:

Wie du geschrieben hast, hast du bereits die ok.de Seite, auf der die Captchas mit ihren Public Keys stehen. In deinem Fall: 6LeTItQSAAAAAMMAMVABUkh53Qp84ni9wVr1B4Yr

Dann gibt es einmal die Möglichkeit, die dein Browser macht, wenn er Javascript hat oder nicht. Für die spätere Umsetzung im Programm ist es eigentlich egal, welche Methode man nutzt.

Mit Javascript:

HTML Code:
<script type="text/javascript" src="https://www.google.com/recaptcha/api/challenge?k=6LeTItQSAAAAAMMAMVABUkh53Qp84ni9wVr1B4Yr"></script>
Wenn man dann: aufruft sieht man ein JavaScript Dokument, welches z.B. unter anderem diese Werte enthält:
HTML Code:
var RecaptchaState = {
    challenge : '03AHJ_VuvzfGQkRKNea-6KCSJYzX-46MYP-yD1BtpjOP-epF9_nlZWxqMOz6L-rOfs1aYKpdABdlZbdFjmrj2ld6Z_KcAeuHnvzc00cy8yXxyuWBPxoxEi7U7FlBZHI3uQ4hnHk4fBYRTN0QVoVgnwuOtSLDOPMehPm0_ixJI2xfT4KMD4Ar6sKa_6JpCez7fECXxAhIeeUYucS-IdNguG0A66kb6bh04FiqE2pgz-db68NciJnQS44ZT5gpvr_Rn9UJjuRD_JYPqQNevkB5IsSXg8MXWgTHp9ag',
    timeout : 1800,
    lang : 'de',
    server : 'https://www.google.com/recaptcha/api/',
    site : '6LeTItQSAAAAAMMAMVABUkh53Qp84ni9wVr1B4Yr',
timeout = Zeit die es noch gültig ist.
Lang = Sprache deutsch
Server = Der Server auf dem das Bild nachher ist
Site = Nochmal den Key, der bereits oben ist.
und Challenge = Der Wert aus der das Bild generiert wird.

Aus den Werten baut man dann wie folgt einen String:
server & "image?c=" & challenge

Der dann so aussieht:
HTML Code:
https://www.google.com/recaptcha/api/image?c=03AHJ_VuvzfGQkRKNea-6KCSJYzX-46MYP-yD1BtpjOP-epF9_nlZWxqMOz6L-rOfs1aYKpdABdlZbdFjmrj2ld6Z_KcAeuHnvzc00cy8yXxyuWBPxoxEi7U7FlBZHI3uQ4hnHk4fBYRTN0QVoVg
nwuOtSLDOPMehPm0_ixJI2xfT4KMD4Ar6sKa_6JpCez7fECXxAhIeeUYucS-IdNguG0A66kb6bh04FiqE2pgz-db68NciJnQS44ZT5gpvr_Rn9UJjuRD_JYPqQNevkB5IsSXg8MXWgTHp9ag
Und dort erhält man dann das Bild.


Ohne Javascript:

Erhält man ein HTML Dokument.

Dort ist das bild schon fast komplett eingetragen:

HTML Code:
<center><img width="300" height="57" alt="" src="image?c=03AHJ_Vusz9NlAkmJtTWGU9xdsIlSycnDn6EJCs7V7dQkR4378u-jS-pSN21QCnxxxjlttdiwM9xpw2A8hPtMb9Srrgs2KiPzESzpV0J0IL_owJt4_JC6_6D6BY9rneTs2velK3q4yBuBgWv7G5rK9saE0O0dka5njNuWDaIXKq414YOdjrYTdTf3DSJcfDXPSQXe9lKHNBmqrLL8Kw7RVVsGkoOQL05iQaw"></center>
Dann nimmt man den Wert des src Tags und erhält das:
HTML Code:
image?c=03AHJ_Vusz9NlAkmJtTWGU9xdsIlSycnDn6EJCs7V7dQkR4378u-jS-pSN21QCnxxxjlttdiwM9xpw2A8hPtMb9Srrgs2KiPzESzpV0J0IL_owJt4_JC6_6D6BY9rneTs2velK3q4yBuBgWv7G5rK9saE0O0dka5njNuWDaIXKq414YOdjrYTdTf3DSJcfDXPSQXe9lKHNBmqrLL8Kw7RVVsGkoOQL05iQaw
Dort muss dann noch die URL des Servers vorangestellt werden()das ergibt dann:

HTML Code:
https://www.google.com/recaptcha/api/image?c=03AHJ_Vusz9NlAkmJtTWGU9xdsIlSycnDn6EJCs7V7dQkR4378u-jS-pSN21QCnxxxjlttdiwM9xpw2A8hPtMb9Srrgs2KiPzESzpV0J0IL_owJt4_JC6_6D6BY9rneTs2velK3q4yBuBgWv7G5rK9saE0O0dka5njNuWDaIXKq414YOdjrYTdTf3DSJcfDXPSQXe9lKHNBmqrLL8Kw7RVVsGkoOQL05iQaw
Und dort erhält man dann ebenfalls das Bild.

Bild in die Anwendung bekommen:

Ich habe mir noch mal eben einen kleinen Codeschnipsel in VB geschrieben, der das Bild in eine Picturebox bringt:

Code:
                    Dim req As HttpWebRequest = CType(HttpWebRequest.Create(server & "image?c=" & challenge), HttpWebRequest)
                    req.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"
                    req.Host = "www.google.com"
                    req.Referer = "" ' Hier ggf Referer der vorherigen Seite'
                    req.CookieContainer = http.cookiecon ' Der cookiecon muss dann allerdings Public sein. Und ich weiß nicht ob es zwingend erforderlich ist die Cookies zu übernehmen'
                    req.Timeout = 15000 ' Timeout in MS (15Sek)'

                    Dim res As HttpWebResponse = CType(req.GetResponse, HttpWebResponse)

                    Picturebox1.Imgae = Image.FromStream(res.GetResponseStream)
Das ganze sollte natürlich in einem anderen Thread laufen und das Bild per invoke übertragen werden, da sonst die ganze Anwendung steht, solange das Bild heruntergeladen wird.

Ich hoffe ich konnte helfen.
Yaknar is offline  
Reply


Similar Threads Similar Threads
Automatische Captcha Eingabe Arcor Bot ( Kein Captcha )
07/23/2013 - elite*gold Trading - 83 Replies
Ich biete hier ein Programm an, welches das Captcha des Arcor Bottes liest und Automatisch einfügt :) So funktioniert es :) (Video) Automatische Captcha Eingabe Arcor Bot - YouTube So sieht alles aus :) Lizenz - Login http://i.epvpimg.com/s1OJg.png
Mehrere abfragen lua.
07/11/2013 - Rappelz Private Server - 1 Replies
Hallo liebe epvp´s Ich benötige einmal hilfe. Könnte mir da wer weiter helfen? function Test() local Test = find_item (0000000) dlg_title( "Test" )
checkboxen abfragen
06/26/2010 - AutoIt - 5 Replies
ich bräuchte auch mal eure hilfe, ich finde einfach keine vernünftige lösung um checkboxen abzufragen, ich poste sie einfach mal: $Checkbox1 = GUICtrlCreateCheckbox("macro nutzen", 424, 96, 97, 17) $Checkbox2 = GUICtrlCreateCheckbox("macro nutzen", 424, 152, 97, 17) $Checkbox3 = GUICtrlCreateCheckbox("macro nutzen", 424, 200, 97, 17) für jede aktive checkbox (true) sollen jewals 2 variablen aus einer .ini in eine .dll geschrieben werden, doch das ist nicht das problem, das einzigste ist...
Arena-ID's abfragen?
04/17/2009 - GW Bots - 2 Replies
HEy, Ich wollt mal wissen, ob man die Arena ID's von den verschiedenen Random Arenen abfrgagen kann. Man Code sieht bisher so aus: #include "tt6.au3" Global $1 = _MemoryRead($BaseB, $hprocess) Global $2 = _MemoryRead($1 + $Offset1, $hprocess) Global $3 = _MemoryRead($2 + $Offset2, $hprocess) Global $4 = _MemoryRead($3 + $TravelID, $hprocess)
CD key abfragen
07/25/2008 - Diablo 2 - 4 Replies
heyho, mal ne frage. ich hab aufm pc 3 versionen diablo2 installiert. v1.09, 1.10 und die aktuelle 1.12 da die installation ne weile her is weiss ich nich mehr welchen cd key ich für welche version benutzt habe, muss dies aber dringend in erfahrung bringen. das proggie showcdkey, was angeblich für 1.10 und 1.11 funktionieren soll, geht nicht. kann ich das aus ner mpq file ablesen, und falls ja, bräuchte ich noch den link zu nem aktuellen mpq reader :) ich bin neu hier und die SuFu hat...



All times are GMT +1. The time now is 21:31.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.