|
You last visited: Today at 21:46
Advertisement
[C#] Nach Zeichenkette in String suchen und ausgeben lassen?
Discussion on [C#] Nach Zeichenkette in String suchen und ausgeben lassen? within the .NET Languages forum part of the Coders Den category.
11/13/2012, 18:41
|
#1
|
elite*gold: 0
Join Date: Jul 2009
Posts: 3,357
Received Thanks: 705
|
[C#] Nach Zeichenkette in String suchen und ausgeben lassen?
Moin,
will in einer PictureBox den Captcha von der Google-Mail Registrierung anzeigen lassen. Natürlich ist das nicht einfach über eine ID oder den name aufrufbar, also muss ich hier ganz klar den Quelltext der Seite nach einer bestimmten Zeichenkette durchsuchen, die Position davon + oder - ein paar Stellen nehmen (da sich die URL zum Captcha ja immer ändert).
Irgendwie will das so aber nicht ganz bei mir. Dass ich hier IndexOf() und SubString() brauche ist mir auch klar, ich bekomms aber einfach nicht hin, könnt ihr mir helfen?
|
|
|
11/13/2012, 19:05
|
#2
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Schau dir mal RegEx an
|
|
|
11/13/2012, 19:20
|
#3
|
elite*gold: 1
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
|
Wo ist denn da dein Problem?
Ich mache das mal in Vb, kannst es dann in C# übersetzen, sollte nicht so schwer sein^^
Code:
Public Function WebRGET(ByVal sUrl As String, Optional ByRef cookies As CookieContainer = Nothing) As String
Dim Request As HttpWebRequest = CType(WebRequest.Create(sUrl), HttpWebRequest)
Request.Method = "GET"
Request.CookieContainer = cookies
Request.ContentType = "application/x-www-form-urlencoded"
Dim Response As HttpWebResponse = CType(Request.GetResponse(), HttpWebResponse)
Dim DataStream = Response.GetResponseStream()
Dim reader As New StreamReader(DataStream)
Dim ServerResponse As String = reader.ReadToEnd()
reader.Close()
DataStream.Close()
Response.Close()
Return ServerResponse
End Function
Public Function GetBetween(ByRef strSource As String, ByRef strStart As String, ByRef strEnd As String, Optional ByRef startPos As Integer = 0) As String
Try
Dim iPos As Integer, iEnd As Integer, lenStart As Integer = strStart.Length
Dim strResult As String
strResult = String.Empty
iPos = strSource.IndexOf(strStart, startPos)
iEnd = strSource.IndexOf(strEnd, iPos + lenStart)
If iPos <> -1 AndAlso iEnd <> -1 Then
strResult = strSource.Substring(iPos + lenStart, iEnd - (iPos + lenStart))
End If
Return strResult
Catch
Return False
End Try
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox1.ImageLocation = "https://www.google.com/recaptcha/api/image?c" & GetBetween(WebRGET("https://accounts.google.com/SignUp?continue=http%3A%2F%2Fwww.google.de%2F&hl=de"), "https://www.google.com/recaptcha/api/image?c", Chr(34))
End Sub
Ich weiß, ist nicht die optimalste lösung^^
|
|
|
11/15/2012, 19:12
|
#4
|
elite*gold: 35
Join Date: Jun 2012
Posts: 1,126
Received Thanks: 43
|
Ganz einfach hier mit
Code:
HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create("https://accounts.google.com/SignUp?service=mail&hl=de&continue=http%3A%2F%2Fmail.google.com%2Fmail%2F%3Fpc%3Dde-ha-emea-de-sk&utm_campaign=de&utm_source=de-ha-emea-de-sk&utm_medium=ha");
HttpWebResponse myRes = (HttpWebResponse)myRequest.GetResponse();
myRequest.Method = "GET";
myRes = (HttpWebResponse)myRequest.GetResponse();
StreamReader sr = new StreamReader(myRes.GetResponseStream());
string html = sr.ReadToEnd();
html = System.Text.RegularExpressions.Regex.Replace(html, @"""", string.Empty);
Regex Url = new Regex("(?<=<img src=https://www.google.com/recaptcha).*(?=[a-z]{0,10}[0-9]{0,10}[A-Z]{0,10}[0-9]{0,10})");
string udl = Url.Match(html).ToString();
Console.Write(udl);
Console.ReadLine();
bekommst dann den wert hinter "https://www.google.com/recaptcha"
|
|
|
11/17/2012, 21:35
|
#5
|
elite*gold: 0
Join Date: Jul 2009
Posts: 3,357
Received Thanks: 705
|
Alles klar, vielen Dank für eure Antworten. Mit Regex hatte ich mich noch nicht beschäftigt, scheint aber auch eine schöne Lösung zu sein
|
|
|
|
Similar Threads
|
[Java]Array vom Typ String > Inhalt ausgeben lassen
10/30/2012 - General Coding - 2 Replies
Ahoi epvp,
String array= {"x", "y"};
Es handelt sich um diesen Array vom Typ String.
Der befindet sich in Klasse "mitarbeiterSuche", allerdings
will ich ihn in der Klasse "main" ausgeben.
Woran kann das liegen? Eclipse sagt mir dauernd:
"array cannot be resolved to a variable"
|
[F]AutoIT: Möglich MobID suchen zu lassen?!
06/28/2011 - Metin2 - 0 Replies
Hallo verehrte Community,
Vorwort:
Bin mir leider nicht sicher ob es hier rein kommt, aber mir ist keine bessere Section eingefallen (was Mein2 angeht!)
Main-Question:
Soo nun mal zu meiner Frage:
Und zwar würde ich gerne Wissen ob es mit dem Programm "AutoIT" möglich ist in Metin2 Monster nicht per PixelSearch zu finden, sondern anhand ihrer MobID?!
|
Autoit Memory suchen lassen
10/07/2010 - AutoIt - 8 Replies
Hi Com,
habe mal in einem script von pingui gesehen, dass er eine Funktion namens _searmemory angewandt hat.
Nun wollte ich fragen ob jemand diese kennt, und mir diese geben könnte?
Leider antwortet er mir nicht.
Weil ich würde Probieren einen Autoupdate für meinen Trainer zu adden.
|
AutoIT]Values Suchen lassen?
09/27/2010 - S4 League - 14 Replies
HI,
geht das, dass AutoIT nach der texture ... in S4 league sucht und alles was dann kommt in etwas anderes umendert in 1 z.B ?
Also nicht so wie jetzt das man die adresse bracuuht sondern einfach
nach 1 suchen lassen
alles was er findet zu 2 ändern
|
D2NT nach ip suchen lassen?
06/01/2010 - Diablo 2 - 6 Replies
kann man den bot eingentlich so einstellen, das er bei einer bestimmten ip in die er joint drin bleibt?
|
All times are GMT +2. The time now is 21:46.
|
|