Web Scraper mit login

Ouch,... das behebt zumindest mal den Error ^^ aber leider kommt noch kein Post an, ich glaub ich hab den string newPost komplett falsch, kannst du dir das vllt nochmal angucken? Wäre super nett!!
Zu der Frage: Doch, und später auch in anderen sodass ich so ne Art verbundenes Kontrollzenrum für mehrere Foren hab um nicht alle einzeln checken zu müssen... :)
 
Wie bei jedem Input-Feld wäre es "Name=Value" also in dem Beispiel "sbutton=Antworten".. aber scheinbar funktioniert es eh schon..

Daher jetzt auch noch ein Hinweis: Wir akzeptieren keinen Spam bei uns im Forum.. wenn du also schon so ein Tool bauen willst, wäre es besser wenn du eine eigene vB Installation hättest, mit der du testen kannst.
 
Ne leider noch nicht XD
Ich hab nur mit chrome "inspect element" versucht herauszufinden ob es auch mit veränderter value noch geht. XD Dachte wenn ichs gleich wieder lösch sieht das gar niemand... mach das inzukunft natürlich in nem anderen vb... ;)
Also mit dem sbutton=Antworten gehts auch nicht...
 
Dachte wenn ichs gleich wieder lösch sieht das gar niemand...

Es gibt da noch sowas wie E-Mail Benachrichtigungen.. ;) (und ja.. für jeden deiner Posts bekam ich eine ^^)

Wenn du ein eigenes vB Forum zum Testen hast, kannst ja mal mit Wireshark nachsehen was da schlussendlich alles übertragen wird. Dazu würd ich noch JavaScript deaktivieren, da du diese Scripte die in vB laufen ja wohl eh nicht nachbauen willst.. *g*
 
Hi,
heute bin ich wieder dazugekommen etwas weiter zu entwickeln (auch wenn es leider immer noch nicht tut).
Ich weiss jetzt dank dem IE HTTP Analizer welche Daten genau gesendet werden.

Nämlich(wilkürliches Forum/Thema...):
Code:
title=Re%3A+%5B.NET%5D+Problem+mit+Pointer+oder+so+%C3%A4hnlich&message=qwertz&wysiwyg=0&iconid=0&s=&securitytoken=1299541972-2ad858e638eda8c0c6fa5119f0e39f08249dac76&do=postreply&t=1641679&p=13778829&specifiedpost=0&posthash=ba36d4b59e715facf9272795c6c95185&poststarttime=1299541972&loggedinuser=344783&multiquoteempty=&sbutton=Antworten&signature=1&parseurl=1&emailupdate=2

Währe super wenn jemand die Zeit hätte sich folgenden Code nochmal anzuschauen.

C#:
        private void button1_Click(object sender, EventArgs e)
        {
            string url = "http://board.gulli.com";
            webBrowser1.DocumentText = sendRequest(url);
        }

        public string sendRequest(string url)
        {
            //LOGIN
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] loginData = encoding.GetBytes("do=login" + "&vb_login_username=" + id01.Text + "&vb_login_password=" + pw01.Text);
            CookieContainer cookieContainer = new CookieContainer();
            
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "/login.php?do=login");
            request.CookieContainer = cookieContainer;
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";

            Stream stream = request.GetRequestStream();
            stream.Write(loginData, 0, loginData.Length);
            stream.Close();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();


            //GET PLAIN HTML
            request = (HttpWebRequest)WebRequest.Create(url + "/newreply.php?do=newreply&noquote=1&p=13778773");
            request.CookieContainer = cookieContainer;
            request.Method = "GET";

            response = (HttpWebResponse)request.GetResponse();
            StreamReader sr = new StreamReader(response.GetResponseStream());
            string sourceCode = sr.ReadToEnd();
            response.Close();


            // GET POST STRING  
            byte[] postData = encoding.GetBytes(formPostMsg(sourceCode));


            // SEND POST STRING  
            request = (HttpWebRequest)WebRequest.Create(url + "/newreply.php?do=newreply&noquote=1&p=13778773");
            request.CookieContainer = cookieContainer;
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            
            stream = request.GetRequestStream();
            stream.Write(postData, 0, postData.Length);
            stream.Close();
            response = (HttpWebResponse)request.GetResponse();
            sr = new StreamReader(response.GetResponseStream());
            sourceCode = sr.ReadToEnd();
            response.Close();


            //RETURN FINAL HTML TO WEBCONTROL
            return sourceCode;
        }

        public string formPostMsg(string sourceCode)
        { 
            ArrayList postValue = new ArrayList();

            postValue.Add("title="+"RERERERERERERE");
            postValue.Add("message=" + "messagemessagemessagemessage");
            postValue.Add("wysiwyg=" + "0");
            postValue.Add("iconid=" + "0");
            postValue.Add("s=" + "");
                string startindex = "<input type=\"hidden\" name=\"securitytoken\" value=\"";
                int startIndex = sourceCode.IndexOf(startindex) + startindex.Length;
                int endIndex = sourceCode.IndexOf("\" />", startIndex);
            postValue.Add("securitytoken=" + sourceCode.Substring(startIndex, endIndex - startIndex));
                startindex = "<input type=\"hidden\" name=\"t\" value=\"";
                startIndex = sourceCode.IndexOf(startindex) + startindex.Length;
                endIndex = sourceCode.IndexOf("\" />", startIndex);
            postValue.Add("t=" + sourceCode.Substring(startIndex, endIndex - startIndex));
                startindex = "<input type=\"hidden\" name=\"p\" value=\"";
                startIndex = sourceCode.IndexOf(startindex) + startindex.Length;
                endIndex = sourceCode.IndexOf("\" />", startIndex);
            postValue.Add("p=" + sourceCode.Substring(startIndex, endIndex - startIndex));
                startindex = "<input type=\"hidden\" name=\"posthash\" value=\"";
                startIndex = sourceCode.IndexOf(startindex) + startindex.Length;
                endIndex = sourceCode.IndexOf("\" />", startIndex);
            postValue.Add("specifiedpost=" + "");
            postValue.Add("posthash=" + sourceCode.Substring(startIndex, endIndex - startIndex)); 
                startindex = "<input type=\"hidden\" name=\"poststarttime\" value=\"";
                startIndex = sourceCode.IndexOf(startindex) + startindex.Length;
                endIndex = sourceCode.IndexOf("\" />", startIndex);
            postValue.Add("poststarttime=" + sourceCode.Substring(startIndex, endIndex - startIndex)); 
                startindex = "<input type=\"hidden\" name=\"loggedinuser\" value=\"";
                startIndex = sourceCode.IndexOf(startindex) + startindex.Length;
                endIndex = sourceCode.IndexOf("\" />", startIndex);
            postValue.Add("loggedinuser=" + sourceCode.Substring(startIndex, endIndex - startIndex)); 
            postValue.Add("multiquoteempty=" + "");
            postValue.Add("sbutton=" + "Antworten");
            postValue.Add("signature=" + "1");
            postValue.Add("parseurl=" + "1");
            postValue.Add("emailupdate=" + "2");

            MessageBox.Show(string.Join("&", postValue.ToArray(typeof(string)) as string[]));
            return string.Join("&", postValue.ToArray(typeof(string)) as string[]);
        }
 
Zuletzt bearbeitet:
Zurück