Próbálom letölteni és elemezni a HTML egy internetes oldalon. A közelmúltban, a forrás honlapon költözött, amelyek rendelkeznek az információt az egyik oldalon rejtőzik része mögött javascript. Van egy „Show All” négyzetet, ami szükséges aktivált érdekében, hogy megtekinthesse a teljes oldalt.
Itt a honlapon: Source Website
Lényegében azt keresem, hogy automatizálják előhívási oldal után a négyzetet került kattintott. Jelenleg van egy C program, amely letölti a weboldal és kezeli a elemzés. Nem vagyok benne biztos, hogy el tudja fogadni a javascript az URL, ha ez lehet, hogy megoldja ezt a problémát (Próbáltam egy könyvjelző, hogy hívja a javascript az URL, de nem voltam képes, hogy azt kell kezelni a négyzetet), de képes a fájlokat, ha könnyebb levelet C # program, amely képes kezelni.
Inkább egy kódolni ezt magam helyett egy harmadik fél programot, hogy ne kelljen semmit telepíteni a szerver ezen fut. Minden segítséget nagyra értékelik.
Edit: Alapvetően hogyan tudom automatizálni a hívást a javascript, amely kapcsolódik, hogy a „Select All” négyzetet, így tudok megragad a HTML-oldalon mindent az, ami után megjelenik a jelölőnégyzet.
Szerkesztése 2: Itt a kimenet Fiddler2:
__EVENTTARGET ctl00$ContentPlaceHolder1$GenericWebUserControl$ShowAllCheckBox
__EVENTARGUMENT
__LASTFOCUS
__VIEWSTATE (REMOVED DUE TO LENGTH)
__EVENTVALIDATION (REMOVED DUE TO LENGTH)
ctl00$ContentPlaceHolder1$GenericWebUserControl$Organization0 ALL
ctl00$ContentPlaceHolder1$GenericWebUserControl$Initial or Amendment1 ALL
ctl00$ContentPlaceHolder1$GenericWebUserControl$Relief Requested2 ALL
ctl00$ContentPlaceHolder1$GenericWebUserControl$Country3 ALL
ctl00$ContentPlaceHolder1$GenericWebUserControl$Status4 ALL
ctl00$ContentPlaceHolder1$GenericWebUserControl$StartDate5
ctl00$ContentPlaceHolder1$GenericWebUserControl$EndDate5
ctl00$ContentPlaceHolder1$GenericWebUserControl$ShowAllCheckBox on
Én jelenleg egyre 500 hibák a szerver. Muszáj, hogy tartalmazza az összes ilyen GenericWebUserControls utáni kérelmet is? Is van szükség, hogy tartalmazza a EVENTVALIDATION?
EDIT 3: Itt a legújabb kódot. Én is kapok szerver 500 hibákat.
private void CreateRequest()
{
HttpWebRequest httpWebRequest;
HttpWebResponse httpWebResponse;
StreamWriter streamWriter;
Stream webResponseStream;
StreamReader streamReader;
string postData;
string outputHTML;
postData = String.Format(&__EVENTTARGET={0} + &__VIEWSTATE={1} + &__EVENTVALIDATION=(2)+&ctl00$ContentPlaceHolder1$GenericWebUserControl$ShowAllCheckBox=on +&ctl00$ContentPlaceHolder1$GenericWebUserControl$Organization0=ALL +&ctl00$ContentPlaceHolder1$GenericWebUserControl$Initial+or+Amendment1=ALL +&ctl00$ContentPlaceHolder1$GenericWebUserControl$Relief+Requested2=ALL +&ctl00$ContentPlaceHolder1$GenericWebUserControl$Country3=ALL +&ctl00$ContentPlaceHolder1$GenericWebUserControl$Status4=ALL,EVENTTARGET, VIEWSTATE, EVENTVALIDATION);
httpWebRequest = (HttpWebRequest)WebRequest.Create(http://services.cftc.gov/sirt/sirt.aspx?Topic=ForeignPart30Exemptions);
httpWebRequest.Method = POST;
httpWebRequest.ContentType = application/x-www-form-urlencoded;
httpWebRequest.ContentLength = postData.Length;
streamWriter = new StreamWriter(httpWebRequest.GetRequestStream(), System.Text.Encoding.ASCII);
streamWriter.Write(postData);
streamWriter.Close();
httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
webResponseStream = httpWebResponse.GetResponseStream();
streamReader = new StreamReader(webResponseStream);
outputHTML = streamReader.ReadToEnd();
Console.WriteLine(outputHTML);
}
EDIT 4: I Megállapítottuk, hogy ez a POSTDATA karaktersorozat, amely okozza a kiszolgáló 500-as hiba. Ha teszem azt egy üres karakterlánc, kiadja az egész weboldalt. Tudja valaki, ha jól tudom az, hogy mindent, hogy jött Fiddler2, hogy volt egy értéket a POSTDATA húr? Azt is, hogy __VIEWSTATE egy hihetetlenül hosszú sora. Vannak határok, vagy bármi nem vagyok biztos?
EDIT 5: futottam az összes húrok használt POSTDATA keresztül URL jeladó, de én még mindig kapok szerver 500 hibákat. Van-e mód arra, hogy debug miért utáni test érvénytelen?
MEGOLDÁS: Ok, nem tudtam én POSTDATA húr helyes, de amikor beillesztette a nyers POST szervezet működik. Ez úgy néz ki, mint ez lesz elég jó, de a gond az, ha ez továbbra is működni.













