Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 16:35

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

Advertisement



HTTPClient Button im browser clicken

Discussion on HTTPClient Button im browser clicken within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
HTTPClient Button im browser clicken

Hallo, hoffe dieses mal wird geholfen das Board schaut nähmlcih ziemlich Tod aus...

Mit dem o.g. Code rufe ich die Webseite "https://www.ebay-kleinanzeigen.de/m-einloggen.html?targetUrl=/" auf und downloade den Code dieser Seite und konvertiere diesen zu einem html object.

Mit Webscraping bekommt man also den Code einer Seite, wie aber klicke ich nun auf Buttons oder schreiibe etwas in eine Textbox?

Auf YOutube hab ich nichts passenden gefunden, wenn dann wurde HttpWebRequest verwendet oder WebClient und selbst dort hatten die nur gezeigt wie man den Code einer Webseite ausgibt....

Stackoverflow war auch keine hilfe, ich brauch mal ein richtiges Code bsp.

brauche dringend hilfe will mir hier kein Selenium scheiss holen, da der Brwoser immer die Daten von den bereits installierten browser nimmt wie User Agent, Fingerprints usw..

Man müsste wohl eine POST anfrage oder wie das genau auch immer heißt zur seite hinschicken, leider fidne ich bei stackoverflow nur alten kram von vor 7 jahren und auf youtube gibt's nur die Russen die einem das mal genau erklären, leider verstehe ich die Sprache der Russen nicht....
KingwondA is offline  
Thanks
1 User
Old 12/30/2019, 09:34   #2
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Du musst per HTTPClient die entsprechenden POST/GET Pakete senden.

(von Stackoverflow kopiert)

Ansonsten kannste das auch mit HTTPWebRequest machen. Da findest du auf jeden Fall was zu.
Ludder231 is offline  
Old 01/01/2020, 06:21   #3
 
Mad0ck's Avatar
 
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284
Hier nen Beispiel wie man sich bei nem Brwosergame via nen Loginbutton / ( Loginform ) einloggt, bzw. diese via post request abschickt.

Request aus dem Network Tab:



Beispiel mit PHP !
Sollte aber in C# ähnlich sein

PHP Code:
use GuzzleHttp\Client;
use 
PHPHtmlParser\Dom;


    private function 
login(){
            
$response $this->client->get(DOMAIN);
            
$resp $response->getBody();

            
$dom = new Dom;
            
$dom $dom->loadStr($resp);

            
$loginValue$dom->find('input[name="login"]')[0]->getAttribute('value');
            
            
$this->client->post(DOMAIN '/login.php', [
                
'form_params' => [
                    
'name' => $this->username,
                    
'password' => $this->password,
                    
's1' => 'Login',
                    
'w' => '1920:1080',
                    
'login' => $loginValue
                
]
            ]); 
Bei dem von dir angegebenen Link hättest du folgende Form Data beim Einlogg Button:

PHP Code:
targetUrl: /
loginWenkseSessionId8ebc2224-e7ac-4dda-b14e-b3886206aabc
loginMail
a@gmx.de
password
a
_csrf
f1e6304e-38f0-43ef-8b6b-dbcb52d78f40
fingerprint
c54aeb5a721d64263c35d7f410d01628 
sessId und crsf Token sind in er form mit der ID "Login-Form"
Fingerprint hab ich auf den ersten Block nicht gesehen.
Mad0ck is offline  
Old 01/02/2020, 12:32   #4
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Ich geb dir mal diese Klasse hier. Damit ist es sehr leicht sowas zu programmieren. ist aber als HTTPWebRequest.

Da kannste einfach dann
PHP Code:
Connection.Get("https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=test"); 
aufrufen etc. Bei Post musste die Formular Daten als zweiten Parameter angeben.
Ludder231 is offline  
Thanks
1 User
Old 01/18/2020, 11:32   #5


 
elite*gold: 122
Join Date: May 2014
Posts: 2,721
Received Thanks: 532
Als ganz billo Version (ohne mit viel Aufwand arbeiten zu müssen) reicht auch eine Instanz des Webbrowsers. Man kann theoretisch den Webbrowser auch in vielen Threads laufen lassen, also solltest du mal kein POST / GET etc. hinbekommen nehm einfach den standard Webbrowser, der hat nämlich ".Document(s?)" auf die du dann sagen kannst ".GetElemenyBy.." und danach mit dem Element die Methode ".click" oder sowas. Ist immer noch die einfachste Lösung insofern kein Captcha vorhanden ist.
Melli- is offline  
Old 02/05/2020, 21:25   #6
 
Mr&MrsNice's Avatar
 
elite*gold: 200
Join Date: Jan 2020
Posts: 36
Received Thanks: 11
Import

HTML Code:
using System.Net.Http;
using System.Web;
using System.Net;
using System.IO;
Call
HTML Code:
            var values = new Dictionary<string, string>
            {
                { "key1", "value1" },
                { "key2", "value" } 
};
            var r = PostRequest("https://sendafuckingrequest.com/someshit.php, values);
Function
HTML Code:
        public static string PostRequest(string api, Dictionary<string, string> dataParams)
        {
            string postData = "";
            foreach (string key in dataParams.Keys)
            {
                postData += HttpUtility.UrlEncode(key) + "="
                      + HttpUtility.UrlEncode(dataParams[key]) + "&";
            }
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(api);
            myHttpWebRequest.Method = "POST";

            byte[] data = Encoding.ASCII.GetBytes(postData);

            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
            myHttpWebRequest.ContentLength = data.Length;

            Stream requestStream = myHttpWebRequest.GetRequestStream();
            requestStream.Write(data, 0, data.Length);
            requestStream.Close();

            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
            Stream responseStream = myHttpWebResponse.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default);
            string pageContent = myStreamReader.ReadToEnd();

            myStreamReader.Close();
            responseStream.Close();
            myHttpWebResponse.Close();

            return pageContent;
        }
Edit:
if the website you are using, in your case im not sure, is using javascript to load content dynamically the better option would be to use selenium
Mr&MrsNice is offline  
Thanks
1 User
Old 02/15/2020, 08:51   #7
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
Quote:
Originally Posted by Mad0ck View Post
Hier nen Beispiel wie man sich bei nem Brwosergame via nen Loginbutton / ( Loginform ) einloggt, bzw. diese via post request abschickt.

Request aus dem Network Tab:



Beispiel mit PHP !
Sollte aber in C# ähnlich sein

PHP Code:
use GuzzleHttp\Client;
use 
PHPHtmlParser\Dom;


    private function 
login(){
            
$response $this->client->get(DOMAIN);
            
$resp $response->getBody();

            
$dom = new Dom;
            
$dom $dom->loadStr($resp);

            
$loginValue$dom->find('input[name="login"]')[0]->getAttribute('value');
            
            
$this->client->post(DOMAIN '/login.php', [
                
'form_params' => [
                    
'name' => $this->username,
                    
'password' => $this->password,
                    
's1' => 'Login',
                    
'w' => '1920:1080',
                    
'login' => $loginValue
                
]
            ]); 
Bei dem von dir angegebenen Link hättest du folgende Form Data beim Einlogg Button:

PHP Code:
targetUrl: /
loginWenkseSessionId8ebc2224-e7ac-4dda-b14e-b3886206aabc
loginMail
a@gmx.de
password
a
_csrf
f1e6304e-38f0-43ef-8b6b-dbcb52d78f40
fingerprint
c54aeb5a721d64263c35d7f410d01628 
sessId und crsf Token sind in er form mit der ID "Login-Form"
Fingerprint hab ich auf den ersten Block nicht gesehen.
Php zu C# soll ich im kopf als anfänger konvertieren? Nein danke

Quote:
Originally Posted by Melli- View Post
Als ganz billo Version (ohne mit viel Aufwand arbeiten zu müssen) reicht auch eine Instanz des Webbrowsers. Man kann theoretisch den Webbrowser auch in vielen Threads laufen lassen, also solltest du mal kein POST / GET etc. hinbekommen nehm einfach den standard Webbrowser, der hat nämlich ".Document(s?)" auf die du dann sagen kannst ".GetElemenyBy.." und danach mit dem Element die Methode ".click" oder sowas. Ist immer noch die einfachste Lösung insofern kein Captcha vorhanden ist.
ja ja kenne ich dieses scheiss teil kommt net in meine Form.

Das ganze soll headless laufen, daher eigentlich nur einer von denen oder am liebsten RestSharp (ist am aktuelslten)



HttpWebRequest for control
WebClient for simplicity and brevity
RestSharp for both on non-.NET 4.5 environments
HttpClient for both + async features on .NET 4.5 environments


Auch HttpWebRequest nutze ich äußert ungerne, da es eben am ältesten ist.... und nicht mehr Zeitgemäß

Allerdings nehme ich jede Deutsche hilfe diesbezüglich an, da es im Deutschen kaum Dokumentationen darüber gibt.. Meiste findet man im Russischen
KingwondA is offline  
Old 02/15/2020, 09:46   #8


 
elite*gold: 122
Join Date: May 2014
Posts: 2,721
Received Thanks: 532


Wenn ich die Antwort so verstehe (von Stackoverflow), wie sie gemeint war, musst du die URL die rauskommt wenn du auf den Button drückst ansprechen, und das ein HTTPClient theoretisch dazu nicht in der Lage ist. (Klar bezieht sich der Stackoverflow auf Java aber Java und C# sind in etwa gleich mit der Funktionalität.)

Deine einzige Möglichkeit:
- Selenium
klappt ebenfalls headless, ist aber wie ein webbrowser, nur das Selenium nicht in deine Form gepackt wird - sondern als seperates Fenster geöffnet wird.
Melli- is offline  
Old 02/15/2020, 10:54   #9
 
Mad0ck's Avatar
 
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284
Quote:
Originally Posted by KingwondA View Post
Php zu C# soll ich im kopf als anfänger konvertieren? Nein danke
Wollt dir nur helfen / nen Denkanstoß geben wie es aufgebaut ist.

Hat mir bis jetzt immer geholfen. Vorallem als Anfänger war ich dankbar, dass mir generell wer hilft.
Mad0ck is offline  
Thanks
3 Users
Old 02/29/2020, 14:55   #10
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
Quote:
Originally Posted by Mad0ck View Post
Wollt dir nur helfen / nen Denkanstoß geben wie es aufgebaut ist.

Hat mir bis jetzt immer geholfen. Vorallem als Anfänger war ich dankbar, dass mir generell wer hilft.
ich bin nicht undankbar für hilfe, nur hilf tmir deine hilfe nicht^^
KingwondA is offline  
Reply


Similar Threads Similar Threads
[B] Push Button [S] 10 e*gold/Button; 25 e*g/psd+Button
09/20/2013 - elite*gold Trading - 4 Replies
Moin, Hier könnt ihr folgenden Push Button kaufen: http://i.epvpimg.com/YlrYe.jpg Pro Button wären das 10e*g, pro Button mit .psd dazu 25e*g. Wenn ihr einen Button kaufen wollt, schreibt mir eine PN, damit ich den Namen ändern kann, alles hochladen kann und euch dann per Treasure schicken kann. ;) Schrift kann auch geändert werden. Dazu einfach in der PN schreiben, welche Schrift ihr haben wollt^^
Auf Icon clicken ?
07/20/2012 - AutoIt - 1 Replies
frage wurde per pn beantwortet, kann gelclosed werden.
Ogame Automat mit Java/Apache HTTPClient
12/02/2010 - General Coding - 3 Replies
Moin! Ich hab gestern versucht ne kleine Automatisierung für Ogame zu programmieren, bin aber direkt am Anfang gescheitert. Ich weis nicht wirklich wie ich mich einloggen soll, ich hab zwar per POST alle Felder gesendet, die mir auch FireBug beim Login anzeigt, aber ich bekomme genau nichts zurück. Hier erstmal mein Code (Java): package sibbo; import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.IOException;



All times are GMT +1. The time now is 16:35.


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.