2013-08-19 4 views
-2

Привет, когда-либо, я новичок в C# webscraping.Вход на сайт Exception

Я хочу войти в систему http://telelisting.ca/, но я не могу. Я использовал , WebBrowser и теперь HttpWebRequest, но те же ошибки возникали все время, которое является исключением сервера 500.

Может ли любой орган помочь мне в том, что я делаю неправильно?

CookieCollection cookies = new CookieCollection(); 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://telelisting.ca/"); 
request.CookieContainer = new CookieContainer(); 
request.CookieContainer.Add(cookies); 
//Get the response from the server and save the cookies from the first request.. 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
cookies = response.Cookies; 
string getUrl = "http://telelisting.ca/"; 
string postData = String.Format("ctl00_LoginPopup1_Login1_UserName={0}&ctl00_LoginPopup1_Login1_Password={1}&__LASTFOCUS={2}&__EVENTTARGET={3}&__EVENTARGUMENT={4}&__VIEWSTATE={5}&__EVENTVALIDATION={6}&ctl00_LoginPopup1_Login1_LoginButton={7}&ctl00_LoginPopup1_hiddenImagePath={8}&ctl00_cphContent_hiddenVideoDialogTitle={9}&ctl00_cphContent_hiddenShowDefaultVideo={10}", "[email protected]", "abcede", "", "", "", "/wEPDwUKMTYzMzk2MDQwNQ9kFgJmD2QWAgIDDxYEHgVjbGFzc2UeCG9udW5sb2FkBQ9PbkVuZFNlc3Npb24oKTsWAgIBD2QWDAIHD2QWBAIDD2QWAgIDDw8WBB4EVGV4dAUVRm9yZ290IHlvdXIgcGFzc3dvcmQ/HgtOYXZpZ2F0ZVVybAUWfi9wYXNzd29yZHJlY292ZXIuYXNweGRkAgUPDxYCHg9WYWxpZGF0aW9uR3JvdXAFGGN0bDAwJExvZ2luUG9wdXAxJExvZ2luMWRkAgkPZBYCAgEPFgIeBGhyZWYFHmphdmFzY3JpcHQ6U2hvd1ZpZGVvQ29udGVudCgpO2QCCw9kFgICAQ9kFgYCCw8PFgIfAwURL0RlZmF1bHQuYXNweD9sPTBkZAIND2QWAgIBD2QWAmYPFgIfAAURRW1wdHlTaG9wcGluZ0NhcnQWAgIBDw8WAh8CBXgmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtkZAIZDw8WAh4HVmlzaWJsZWhkZAIND2QWAgIBD2QWAgIBDw8WAh8CBTM8c3Ryb25nPjxhIGhyZWY9IkRlZmF1bHQuYXNweCI+SG9tZTwvYT4gPiA8L3N0cm9uZz5kZAIPD2QWBAIJDw8WAh8CBdgJPG1hcnF1ZWUgU0NST0xMREVMQVk9JzE1MCcgPkF1ZyAxOCAtIE5ldyBDbGllbnQgaW4gPGI+TWFnb2cnPC9iPi4uLi4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdWcgMTYgLSBOZXcgQ2xpZW50IGluIDxiPkxvbmRvbic8L2I+Li4uLiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0F1ZyAxNiAtIE5ldyBDbGllbnQgaW4gPGI+U3QuIE1hcnlzJzwvYj4uLi4uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXVnIDE2IC0gTmV3IENsaWVudCBpbiA8Yj5CYXJyaWUnPC9iPi4uLi4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdWcgMTQgLSBOZXcgQ2xpZW50IGluIDxiPkJhcnJpZSc8L2I+Li4uLiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0F1ZyAxNCAtIE5ldyBDbGllbnQgaW4gPGI+VmFuY291dmVyJzwvYj4uLi4uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXVnIDEzIC0gTmV3IENsaWVudCBpbiA8Yj52YXVnaGFuJzwvYj4uLi4uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXVnIDEzIC0gTmV3IENsaWVudCBpbiA8Yj5Mb25ndWV1aWwnPC9iPi4uLi4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdWcgMTMgLSBOZXcgQ2xpZW50IGluIDxiPlRvcm9udG8nPC9iPi4uLi4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdWcgMTIgLSBOZXcgQ2xpZW50IGluIDxiPlN0ZS1DYXRoZXJpbmUtZGUtbGEtSi4tQy4nPC9iPi4uLi4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdWcgMDkgLSBOZXcgQ2xpZW50IGluIDxiPk5ld21hcmtldCAnPC9iPi4uLi4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdWcgMDggLSBOZXcgQ2xpZW50IGluIDxiPkJyYW1wdG9uJzwvYj4uLi4uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXVnIDA3IC0gTmV3IENsaWVudCBpbiA8Yj5WYW5jb3V2ZXInPC9iPi4uLi4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdWcgMDcgLSBOZXcgQ2xpZW50IGluIDxiPk90dGF3YSc8L2I+Li4uLiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0F1ZyAwNyAtIE5ldyBDbGllbnQgaW4gPGI+VHJvaXMtUml2acOocmVzJzwvYj4uLi4uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9tYXJxdWVlPmRkAhEPZBYCZg8PFgIfAgXyAzxoMyBjbGFzcz0idGl0bGVuYXYiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZlcnJhbCBQcm9ncmFtPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGlkPSJyMjUiPjEgTW9udGggRnJlZSEgPC9wPiAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgaWQ9InRlc3RpbW9uaWFsbmF2Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXIgY29sbGVhZ3VlcyBhbmQgZnJpZW5kcyB0byBUZWxlbGlzdGluZyBhbmQgcmVjZWl2ZSAxIE1vbnRoIEZyZWUgYWNjZXNzIHRvIG91ciBwaG9uZWJvb2sgc2VydmljZSBmb3IgZXZlcnkgcmVmZXJyYWwgdGhhdCByZXN1bHRzIGluIGEgcGFpZCBzdWJzY3JpcHRpb24uIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4NCjxhIHJ1bmF0PSJzZXJ2ZXIiIGhyZWY9IlJlZmVycmFsTG9naW4uYXNweCIgY2xhc3M9ImJ1eW5vdyI+UmVmZXIgTm93PC9hPiAgICAgICANCmRkAhEPZBYCAgEPZBYMAgMQPCsACQEADxYEHghEYXRhS2V5cxYAHgtfIUl0ZW1Db3VudGZkZGQCBQ8PZA8QFgFmFgEWAh4OUGFyYW1ldGVyVmFsdWUFBWVuLVVTFgECBmRkAgkQPCsACQEADxYEHwcWAB8IZmRkZAILDw9kDxAWAmYCARYCFgIfCWQWAh8JBQVlbi1VUxYCAgMCBmRkAg8QPCsACQEADxYEHwcWAB8IAgFkZBYCZg9kFgICAQ8PFgIfAgW1AUkndmUgYmVlbiB1c2luZyBUZWxlbGlzdGluZyBzZXJ2aWNlcyAgZm9yIHRoZSBsYXN0IDMgeWVhcnMgbm93IGFuZCB0aGV5IHJlYWxseSBoZWxwIG1lIGNvbmNlbnRyYXRlIG9uIGJ1aWxkaW5nIG15IGJ1c2luZXNzIGFuZCBpbiBjbG9zaW5nIG1vcmUgb3Bwb3J0dW5pdGllcyBldmVyeSB5ZWFyLg0KDQpNLiBTbWl0aC5kZAIRDw9kDxAWAWYWARYCHwkFBWVuLVVTFgECBmRkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYCBSNjdGwwMCRMb2dpblBvcHVwMSRMb2dpbjEkUmVtZW1iZXJNZQUpY3RsMDAkTG9naW5Qb3B1cDEkTG9naW4xJExvZ2luSW1hZ2VCdXR0b25RUp74UUPL72rYSQL3cfYMy9DWZU4l5e0kF3vCJf5fkQ==", "/wEWCQL9vYfeCAKVyobIBgKB94O0CwKz7JHYDQLsu7CWDgL31sOaAQLmjZ/bDQLto+ilAwLC4KCXAqOJh1kiYkswzxstW/o4u1wgJbA0/EnFO2L8sDvV8fVl", "Log In", "/HSIControl", "Telelisting Instruction Video", ""); 
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(getUrl); 
getRequest.CookieContainer = new CookieContainer(); 
getRequest.CookieContainer.Add(cookies); //recover cookies First request 
getRequest.Method = WebRequestMethods.Http.Post; 
//Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
getRequest.ContentType = "text/html"; 

getRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2"; 
getRequest.AllowWriteStreamBuffering = true; 
getRequest.ProtocolVersion = HttpVersion.Version11; 
getRequest.AllowAutoRedirect = true; 
getRequest.ContentType = "application/x-www-form-urlencoded"; 

byte[] byteArray = Encoding.ASCII.GetBytes(postData); 
getRequest.ContentLength = byteArray.Length; 
Stream newStream = getRequest.GetRequestStream(); //open connection 
newStream.Write(byteArray, 0, byteArray.Length); // Send the data. 
newStream.Close(); 

HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse(); 
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream())) 
{ 
    string sourceCode = sr.ReadToEnd(); 
    Debug.WriteLine(sourceCode); 
} 

ответ

0

Ошибка сервера в 500 диапазоне означает сторону что-то пошло не так сервер. По внешнему виду вашего запроса, я думаю, это может быть связано с переменной Viewstate, которую вы публикуете. Сервер попытается восстановить страницу в соответствии с вашим отправленным состоянием. Это не то, что вы просто копируете и вставляете. Вы пробовали только отправлять параметры, относящиеся к самому логину (имя, пароль, имя нажатой кнопки)?

+0

yes offcourse Я отправил параметры, которые относятся к самому логину, но снова возвращает мне страницу входа – Nomi

0

Для вашей работы см. Скрипт, запускающий тот же запрос, и просмотр совпадений файлов cookie и других параметров сообщений.

А также попробовать:

postparameter= UrlEncode(postparameter) 

Перед преобразованием их в байт и посмотреть, если это работает.

Возможно, это работает именно так.

-1

Почему вы не переходите на точную страницу, которую хотите очистить в своем браузере, а затем экспортируете полный набор COOKIE для ручной привязки к заголовку вашего скрипта?