Файлы cookie htmlAgilityPack.HtmlDocument

cookies dom html-agility-pack javascript

Вопрос

Это относится к файлам cookie, установленным внутри скрипта (возможно, внутри тега скрипта).

System.Windows.Forms.HtmlDocument выполняет эти сценарии, а набор файлов cookie (например, document.cookie=etc... ) Можно получить через свойство Cookies .

Я предполагаю, что HtmlAgilityPack.HtmlDocument этого не делает (исполнение). Интересно, есть ли простой способ эмулировать возможности System.Windows.Forms.HtmlDocument (часть куки-файлов).

Кто угодно?

Популярные ответы

Когда мне нужно совместно использовать Cookies и HtmlAgilityPack или просто создавать пользовательские запросы (например, установить свойство User-Agent и т. Д.), Вот что я делаю:

  • Создайте класс, который инкапсулирует запрос / ответ. Давайте назовем этот класс WebQuery
  • Имейте частное свойство CookieCollection (в вашем случае public ) внутри этого класса
  • Создайте метод внутри класса, который выполняет запрос вручную. Подпись может быть:

...

public HtmlAgilityPack.HtmlDocument GetSource(string url);

Что нам нужно делать внутри этого метода?

Ну, используя HttpWebRequest и HttpWebResponse , сгенерируйте HTTP-запрос вручную (есть несколько примеров того, как это сделать в Интернете), создайте экземпляр класса HtmlDocument используя конструктор, который получает поток.

Какой поток мы должны использовать? Ну, тот вернулся:

httpResponse.GetResponseStream();

Если вы используете HttpWebRequest для запроса, вы можете легко установить для CookieContainer свойство CookieContainer переменной, которую вы объявили, перед CookieContainer новой страницы, и таким образом все файлы cookie, установленные доступными вами сайтами, будут правильно сохранены в переменной CookieContainer вы объявили в своем классе WebQuery , WebQuery , что используете только один экземпляр класса WebQuery .

Надеюсь, вы найдете полезным это объяснение. Примите во внимание, что с помощью этого вы можете делать все, что хотите, независимо от того, поддерживает ли HtmlAgilityPack это или нет.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow