Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Ako odoslat/precitat data z webu (C#)

ahoj,

potreboval by som poradit, mam takyto kod (prakticky totozny s demom na msdn):

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("www.dovera.sk/overenia/overit-poistenca");
req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0";
req.Timeout = 5000;
string postData = "rodne_cislo=1234567890";
byte[] send = Encoding.Default.GetBytes(postData);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = send.Length;
Stream sout = req.GetRequestStream();
sout.Write(send, 0, send.Length);
sout.Flush();
sout.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string responseString = sr.ReadToEnd();

Chodilo to bez problemov, teraz vsak uz nie. Najprv tam pribudol checkbox 'nie som robot' od google. Teraz tam ten checkbox uz nie je ale aj tak to nechodi. Rucne zadat na tom webe to ide.

Předmět Autor Datum
Co s tym ma spolocne google? Su tam reklamy google na tom? Zdrojak toho webu si si uz pozeral ze ci…
MM.. 23.06.2015 19:57
MM..
Dik za reakciu, ked to prestalo fungovat tak na tu stranku pridali checkbox (overenie, ze nie som ro…
palo2 23.06.2015 20:43
palo2
Ked do toho nevidis tak toho moc neurobis. Na tom webe je v tom forme aj polozka datum, ten ale nepo…
MM.. 23.06.2015 21:31
MM..
Ještě můžeš použít Chrome či Firefox s nějakou extension, který přesně analyzuje(vypisuje), co se od…
Flash_Gordon 23.06.2015 22:46
Flash_Gordon
funguje mi to jednoducho cez curl, takze ziadne useragenty, cookies, referery ani ine veci v headri…
emem 24.06.2015 15:42
emem
:-[ Jasné. Už je pozdě, prdím na to. HttpWebRequest req = (HttpWebRequest)WebRequest.Create("www.…
Flash_Gordon 24.06.2015 23:24
Flash_Gordon
Dakujem vsetkym za pomoc, funguje to po pridani toho submit. Uz len tak pre zaujimavost, preco to p…
palo2 25.06.2015 18:07
palo2
Třeba to upravili tak, aby to bylo nutné. poslední
Wikan 25.06.2015 18:23
Wikan

Co s tym ma spolocne google? Su tam reklamy google na tom?
Zdrojak toho webu si si uz pozeral ze ci tam nepridali nejake dalsie (napr. nejake kontrolne) policka do toho formu?
Mozno to aj konktroluje nejaky cookie apod.
(skus si odsniffovat wiresharkom apod ze co robi ked to robis rucne)

Dik za reakciu, ked to prestalo fungovat tak na tu stranku pridali checkbox (overenie, ze nie som robot, powered by google ak si dobre pamatam, uz tam nie je teraz, neviem to na 100% ani to nie je dolezite).

Ziadne dalsie kontrolne pole tam nevidim. Skusal som aj cez privatne prezeranie v prehliadaci, to by nemalo ziadne cookie pouzivat, nie? Ale ze je tam nejaka kontrola/ochrana vylucit nemozem. Wireshark mne nepomoze, to by musel pozriet niekto, kto sa v tom vyzna.

Ja s webom prakticky nic nerobim ani do toho nevidim. Preto sa pytam skusenejsich, kde by mohol byt pes zakopany...

Ked do toho nevidis tak toho moc neurobis.
Na tom webe je v tom forme aj polozka datum, ten ale neposielas. Skus poslat aj ten. Nevidim tam ziaden checkbox od google.

P.S. ked tam budes posielat excessivne moc poziadaviek tak moze server reagovat rozne, trebars aj tak ze ti prestane posielat odpoved alebo moze vyhdzovat nejake checkboxy.

Ještě můžeš použít Chrome či Firefox s nějakou extension, který přesně analyzuje(vypisuje),
co se odesílá při požadavku.

Je možné, že tam dali např. nějakou session, či cookie, která se v prohlížeči aktivuje,
ale samotný POST z programu (výše) ji neobsahuje.

Nakonec samotná (stažená) odpověď může prozradit více.

//update
Trochu jsem se díval, vypadá to, jako by se výsledek dotahoval do
odpovědi přes Ajax. Čili (nově) odpověď neobsahuje tento údaj, ale
dotahuje si ho (zkráceně) někde přes JavaScript.

funguje mi to jednoducho cez curl, takze ziadne useragenty, cookies, referery ani ine veci v headri niesu potrebne,
je to jednoduchy POST formulara ale rodne_cislo a submit fieldy su potrebene:

curl 'www.dovera.sk/overenia/overit-poistenca' --data 'rodne_cislo=101010/1010&submit=submit' --silent -stderr | grep "poistencom"
<strong>NIE JE poistencom Dôvery</strong> k dátumu 24.&nbsp;06.&nbsp;2015

Skus pridat mezdi tie postData aj ten 'submit' field.

:-[

Jasné. Už je pozdě, prdím na to.

  HttpWebRequest req = (HttpWebRequest)WebRequest.Create("www.dovera.sk/overenia/overit-poistenca");
            req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0";
            req.Timeout = 5000;
            string postData = "rodne_cislo=861020/1234&submit=submit";
            byte[] send = Encoding.Default.GetBytes(postData);
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            req.ContentLength = send.Length;
            Stream sout = req.GetRequestStream();
            sout.Write(send, 0, send.Length);
            sout.Flush();
            sout.Close();
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();
            StreamReader sr = new StreamReader(res.GetResponseStream());
            string responseString = sr.ReadToEnd();
            textBox1.Text = responseString;

Zpět do poradny Odpovědět na původní otázku Nahoru