|
You last visited: Today at 14:13
Advertisement
Element ID vom Abo Button?
Discussion on Element ID vom Abo Button? within the General Coding forum part of the Coders Den category.
10/15/2012, 14:36
|
#16
|
elite*gold: 0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
|
Das liegt daran dass du erst nach 5sec zur Hauptseite weitergeleitet wirst :|
|
|
|
10/15/2012, 16:06
|
#17
|
elite*gold: 0
Join Date: May 2008
Posts: 1,222
Received Thanks: 500
|
Quote:
Originally Posted by CryLike
So ich habe mich jetzt mal mit Httpwebrequest beschäftigt,
Und das ist der volle code um sich auf epvp einzuloggen:
Code:
Option Strict On
Option Explicit On
Imports System.IO
Imports System.Net
Imports System.Text
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
With New Http
'hier wird der Seitenquelltext gespeichert
Dim html As String = String.Empty
'Login ausführen
html = .GetResponse("http://www.elitepvpers.com/forum/login.php?do=login", "vb_login_username=CryLike&vb_login_password=passwortvonepvp&cookieuser=1&s=&securitytoken=guest&do=login&vb_login_md5password=&vb_login_md5password_utf=")
'Hauptseite aufrufen
html = .GetResponse("http://www.elitepvpers.com/forum/")
'prüfen, ob Login erfolgreich war
If html.Contains("Log Out") Then
MsgBox("OK")
Else
MsgBox("NICHT OK")
End If
End With
End Sub
End Class
Public Class Http
Dim cookieCon As New CookieContainer
Dim request As HttpWebRequest
Dim response As HttpWebResponse
Public Function GetResponse(ByVal url As String) As String
request = CType(HttpWebRequest.Create(url), HttpWebRequest)
request.CookieContainer = cookieCon
response = CType(request.GetResponse(), HttpWebResponse)
Return New StreamReader(response.GetResponseStream()).ReadToEnd()
End Function
Public Function GetResponse(ByVal url As String, ByVal post As String) As String
request = CType(HttpWebRequest.Create(url), HttpWebRequest)
request.Method = "POST"
request.CookieContainer = cookieCon
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0"
request.ContentType = "application/x-www-form-urlencoded"
Dim byteArr() As Byte = Encoding.UTF8.GetBytes(post)
request.ContentLength = byteArr.Length
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArr, 0, byteArr.Length)
response = CType(request.GetResponse(), HttpWebResponse)
Return New StreamReader(response.GetResponseStream()).ReadToEnd()
End Function
End Class
Ergebnis: Das Programm braucht 5 sekunden um mir ein loggin ergebnis zu geben. die methode über den browser gibt mir nach einer sekunde ein ergebnis. So ein langer code um 2 Felder auszufüllen und einen button zu drücken`? Ich persönlich halte nichts von httpwebrequest
|
1. Man kann den Code wiederverwenden.
2. Solltest du die Cookies überprüfen ob du eingeloggt bist, das geht schneller.
3. Ladet es generell schneller da keine Bilder und zusätzliche Dateien geladen werden.
|
|
|
10/15/2012, 18:00
|
#18
|
elite*gold: 0
Join Date: Oct 2012
Posts: 172
Received Thanks: 201
|
Hmm normal brauche ich nichtmal 1 sekunde um epvp aufzurufen.
Aber:
Kraizy deine Lösung von vorhin scheint mir etwas interessant.
Code:
for each element in wb.document.getelementsbytagname("button")
if element.innerhtml.contains("subscribe")
element.invokemember("click")
end if
next
Nur da es eine schleife ist, abonniert und deabonniert das ding sekundentlich.
Natürlich habe ich schon versucht zB. Eine Variable +1 zu rechnen wie hier:
Code:
if A = "1" then
for each element in wb.document.getelementsbytagname("button")
if element.innerhtml.contains("subscribe")
element.invokemember("click")
end if
A = "2"
next
end if
Jedoch tut sich dann garnichts mehr, der abo button wird nichtmehr geclickt.
edit: abo problem ist gelöst.
Nun ist die like funktion drann. Die ID ist doch "watch-like" aber anscheinend ist das falsch?!
edit: Like bot geschafft
Neues Problem: Der Loggout button... Ich hab ihn schon über alle namen versucht rauszufinden mit vb.. geht leider nichts von
edit: Alles selber geschafft. Bei neuen problemen editiere ich.
|
|
|
10/15/2012, 23:29
|
#19
|
elite*gold: 0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
|
Zu deinem Dingens mit der Schleife. Schon mal was von "Exit For" gehört?
BTW, was soll dieses sinnlose Zeugs vonwegen if A = "1"..?
Und glaub mir, mit WebRequests wärst du mit der Arbeit deines Bots viel schneller fertig und er würde am Ende auch um einiges schneller arbeiten, nicht zu vergessen Multithreading, das in Verbindung mit Requests..da kannste dein Browser knicken.
Das mit den 5sec bevor du weißt ob du eingeloggt bist oder nicht, das liegt an dir. Man kann es mit dem richtigen Code/Abfrage um ein vielfaches verschnellern.
Und zuletzt noch zu deinem "es ist so viel Code, nur um einen kleinen Button zu drücken..". Du brauchst nur 1 WebRequest Klasse, alles andere sind lediglich simple Funktionsaufrufe wie zb GetResponse("link", "post-daten"). Bei deinem Browser brauchst du für alles neue Schleifen und was weiß ich alles.
Wenn du immer noch der Meinung bist der Browser sei besser geeignet, dann kann ich dir auch nicht mehr helfen und wünsche dir viel Spaß und Glück
|
|
|
10/16/2012, 09:17
|
#20
|
elite*gold: 0
Join Date: Oct 2012
Posts: 172
Received Thanks: 201
|
Ich arbeite nun mit HttpwebRequest, weiß aber höchstens wie mann sich iwio einloggt, Aber nicht wie man einen button drückt, oder noch weniger wie man ein textfeld damit ausfüllt
|
|
|
10/16/2012, 09:21
|
#21
|
elite*gold: 0
Join Date: May 2008
Posts: 1,222
Received Thanks: 500
|
Quote:
Originally Posted by CryLike
Ich arbeite nun mit HttpwebRequest, weiß aber höchstens wie mann sich iwio einloggt, Aber nicht wie man einen button drückt, oder noch weniger wie man ein textfeld damit ausfüllt
|
Dann lern erstmal die Sprache, und nicht nur Copy und Paste aus anderen Threads! Du hast dich damit beschäftigt? Solange rumkopiert bis es funktioniert hat? Du bist ja schon richtig peinlich...
|
|
|
10/16/2012, 09:49
|
#22
|
elite*gold: 0
Join Date: Oct 2012
Posts: 172
Received Thanks: 201
|
Ein Button klick müsste man doch mit livehttpheaders mitschneiden und dann den POST Parameter in vb einbinden?
@boxxie es ist nicht alles c&p Habe mir zahlreiche tuts durchgelesen, hah aber alle beschreiben nur wie man sich einloggen kann sprich die strings über POST an die seite zu schicken.
btw das ist der code von livehttpheaders der beim button klick geschnitten wurde.(abo button)
Ich habe echt kp was ich davon einbinden soll.
Code:
http://www.youtube.com/subscription_ajax?action_create_subscription_to_channel=1&feature=channels3
POST /subscription_ajax?action_create_subscription_to_channel=1&feature=channels3 HTTP/1.1
Host: www.youtube.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://www.youtube.com/user/FalschesSignal?feature=watch
Content-Length: 97
Cookie: VISITOR_INFO1_LIVE=GE8fwDJ-soU; PREF=f1=50000000&hl=de&fv=11.4.402; use_hitbox=d5c5516c3379125f43aa0d495d100d6ddAEAAAAw; demographics=ad1bbbe07aee069ccb9c71a6e0fb34e7e3QGAAAAZ2VuZGVydAEAAABtdAMAAABhZ2VpEwAAADA=; SID=DQAAAK8AAACP4_fVtcQqRvTnjsyotPz9uzIfFxT3wrQORlT_cVu32T27TD50zpi8yvtiDMlhwDo42cqiDSvOmRo-ATCTvXtmhGd3Ul7g-sdvSzMqoyEJQoKvnLkACBxJnRbeEE99KLBEPE8bsq0TBhyvAJYvJUpDRLhLgnfRSZCoCkcbfyjAof9x1beS3cirayzTTEXK6bi2Ip8AIbtEg34BULAdApx0vrwMTfk4km38--gysm4nxw; HSID=A2sJ0WbHtmXEcwweQ; APISID=iX3sLBp7wt0Rrv1X/Aq061V3PkbSp3W-7s; LOGIN_INFO=48b72074948c56eddb59acf6ec8491aac40AAAB7IjEiOiAxLCAiMyI6IDUyNDk5MTMwMCwgIjIiOiAiTGh0VVZJT1V4TkY3a1M0dWV0M1dCUT09IiwgIjUiOiA1MjA3Mjg5MjA4MjQ2NTI3LCAiNCI6ICJHQUlBIiwgIjciOiAxMzUwMzczODk5LCAiNiI6IGZhbHNlLCAiOCI6IDY2ODg0MjQwMzkzOX0=; ACTIVITY=1350373923949; s_tempdata-2188989189=ei=COHuw_GGhbMCFZKRIQodGHGLCQ%3D%3D&feature=channels3
Pragma: no-cache
Cache-Control: no-cache
session_token=LdIZq-_ojfDhPwaeLoFD_KJJyDJ8MTM1MDQ2MDMyN0AxMzUwMzczOTI3&c=UCkeVxNfgIIKBg3ZUFPsDjKg
HTTP/1.1 200 OK
Date: Tue, 16 Oct 2012 07:52:16 GMT
Server: Apache
Content-Disposition: attachment
X-Content-Type-Options: nosniff
Content-Encoding: gzip
Set-Cookie: s_tempdata-2188989189=; path=/; domain=.youtube.com; expires=Thu, 01-Jan-1970 00:00:00 GMT
Expires: Tue, 27 Apr 1971 19:44:06 EST
Cache-Control: no-cache
P3P: CP="This is not a P3P policy! See //support.google.com/accounts/bin/answer.py?answer=151657&hl=de-DE for more info."
X-Frame-Options: SAMEORIGIN
Content-Length: 475
Content-Type: application/json; charset=UTF-8
----------------------------------------------------------
|
|
|
10/16/2012, 10:19
|
#23
|
elite*gold: 0
Join Date: May 2008
Posts: 1,222
Received Thanks: 500
|
Was ist jetzt das Problem? Lern es erstmal!!!
Code:
session_token=LdIZq-_ojfDhPwaeLoFD_KJJyDJ8MTM1MDQ2MDMyN0AxMzUwMzczOTI3&c=UCkeVxNfgIIKBg3ZUFPsDjKg
|
|
|
10/16/2012, 10:26
|
#24
|
elite*gold: 0
Join Date: Oct 2012
Posts: 172
Received Thanks: 201
|
Danke boxxie 
Nach dem youtube loggin wird man ja auf die startseite geleitet.
Wenn ich jetzt zumbeispiel zu dem Kanal "Gommehd" mit httprequest will ist doch folgender code richtig oder?
Code:
html = .GetResponse("http://www.youtube.com/user/gommehd")
Ich hoffe das ist der code der zu einer seite navigiert 
Wenn ich dann drauf bin, wie binde ich dann den session_token code ein?
|
|
|
10/16/2012, 12:16
|
#25
|
elite*gold: 0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
|
Und du bist dir sicher, dass du eingeloggt bist? Wenn du das nämlich schaffen würdest, hättest du sicherlich keine Probleme mit deinem session token, wo du den findest und wie du den übergibst..
|
|
|
10/16/2012, 12:36
|
#26
|
elite*gold: 0
Join Date: Oct 2012
Posts: 172
Received Thanks: 201
|
Code:
html = .GetResponse("https://accounts.google.com/ServiceLogin?passive=true&continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26feature%3Dsign_in_button%26nomobiletemp%3D1%26hl%3Dde_DE%26next%3D%252F&uilel=3&hl=de_DE&service=youtube", "%3A224%3A1&checkedDomains=youtube&timeStmp=&secTok=&Email=" & Nick & "&Passwd=" & Passwort & "&signIn=Anmelden&PersistentCookie=yes&rmShown=1")
html = .GetResponse("http://www.youtube.com/?gl=DE&hl=de")
If html.Contains("Video hochladen") Then
MsgBox("OK")
Else
MsgBox("NICHT OK")
End If
Ich denke schon das ich eingeloggt bin, denn ich frage danach ab ob er im quelltext "Video Hochladen" finden kann. Trotzdem weiß ich nicht wie und was ich mit session_token mache.
|
|
|
10/16/2012, 12:52
|
#27
|
elite*gold: 0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
|
Und du denkst "Video hochladen" steht sonst nie im Quelltext? Bin am Handy von daher weiß ich das grad nicht. Aber ich kann mich noch erinnern, dass man beim Login noch zusätzliche Parameter wie zb GALX übergeben muss, das wäre im Prinzip das selbe wie dein session_token.
|
|
|
10/16/2012, 12:59
|
#28
|
elite*gold: 0
Join Date: Oct 2012
Posts: 172
Received Thanks: 201
|
Lol ich glaube ich bin tatsächlich nicht eingeloggt o.ô
Wenn ich nach "melde dich an" suche kommt "OK" -.-
Wie muss ich denn dieses GALX übergeben.?
|
|
|
10/16/2012, 13:01
|
#29
|
elite*gold: 0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
|
Entweder aus dem Quelltext oder den Cookies auslesen, und in deinem post String übergeben.
|
|
|
10/16/2012, 13:13
|
#30
|
elite*gold: 0
Join Date: Oct 2012
Posts: 172
Received Thanks: 201
|
Trollol Beispiel code?
Ich kann grad garnicht mehr folgen xD
|
|
|
 |
|
Similar Threads
|
div element
07/11/2012 - Web Development - 2 Replies
hey, ich hab wieder mal ein problem :DD
<div class="register form" style="display: table; #position: relative; overflow: hidden; margin:auto">
<div style=" #position: absolute; #top: 50%;display: table-cell; vertical-align: middle;">
<div class="reg one"><b>Ihre Email-Adresse</b><hr />
<div class="reg two">Email-Adresse</div>
<div class="reg two"><input type="text" name="email" /></div>
<div class="reg three">Email-Adresse wiederholen</div>
|
Item-Shop Lager Button Zum Normalen lager button machen? DE
01/12/2011 - Metin2 - 6 Replies
Moin,
seid heute gib es ja im inventar den IS button wo man mit sein lager öffnen kann,könnte man den auch zu einem Normalen lager Button Machen?
|
WarRock statt KOREANISCHE BUTTON --> Englische BUTTON
02/26/2010 - WarRock - 6 Replies
Bin mir nicht sicher ob es diesen Thread schon gibt
aber hab bis jetzt nichts gesehen hier.
Funktionen
Für WarRock Korea
Koreanische Schriften (Button) weg und englische Schriften (Button) hin
Anleitung
|
All times are GMT +1. The time now is 14:13.
|
|