Есть кое-что, что вы должны знать, независимо от того, запрашиваете ли вы сеть через HtmlAgilityPack
или используете HttpWebRequest
класс напрямую (HtmlAgilityPack
использует это): Как обращаться с Cookies .
Вот основные шаги, которые вы должны выполнить:
- Загрузите страницу, на которую хотите войти
- Отправьте необходимую информацию для входа, используя POST метод (имя пользователя, пароль или все, что запрашивает страница)
- Сохраните Cookies в ответе и используйте эти Cookies с этого моментана.
- Запросить страницу с этими Cookies и проанализировать ее с помощью
HtmlAgilityPack
.
Вот что я всегда делаю при использовании HtmlAgilityPack
: Отправитьзапросить на сайте, используя HttpWebRequest
вместо этого, используя Load(..)
метод HtmlWeb
class .
Учтите, что один из параметров Load
метода в HtmlDocument
класс получает Stream
.Все, что вам нужно сделать, это пропустить поток response
(полученный из request.GetResponseStream()
), и у вас будет HtmlDocument
необходимый вам объект.
Я предлагаю вам установить Fiddler .Это действительно отличный инструмент для проверки HTTP-запросов / ответов либо из вашего браузера, либо из вашего приложения.
Запустите Fiddler
и попробуйте зайти на сайт через браузер и посмотреть, что браузер отправляет на страницу и что возвращает страница, и это именно то, что вам нужно для эмуляции, используя класс HttpWebRequest
.
Редактировать:
Идея заключается не просто в передаче статического Cookie в заголовок.Это должно быть Cookie , возвращаемое страницей после входа в систему.
Чтобы обработать Cookies , взгляните на свойство HttpWebRequest.CookieContainer .Это проще, чем вы думаете.Все, что вам нужно сделать, это объявить переменную CookieContainer
(пустую) и присвоить ее этому свойству перед отправкой любого запроса на веб-сайт.Когда веб-сайт дает ответ, Cookies должны быть автоматически добавлены в этот контейнер, чтобы вы могли использовать их при следующем запросе веб-сайта.
Редактировать 2:
Если все, что вам нужно, это скрипт для автоматизации его через ваш браузер, взгляните на библиотеку WatiN .Я уверен, что вы сможете запустить его самостоятельно, когда увидите один или два примера того, как его использовать; -)