HtmlAgilityPack.HtmlDocument Cookies

cookies dom html-agility-pack javascript

質問

これは、スクリプトの中で設定されたクッキー(おそらくスクリプトタグ内の)に関係します。

System.Windows.Forms.HtmlDocumentはそれらのスクリプトを実行し、 Cookieプロパティ( document.cookie=etc... )はCookiesプロパティで取得できます。

私はHtmlAgilityPack.HtmlDocumentはこれを(実行)しないと仮定します。 System.Windows.Forms.HtmlDocument機能(クッキー部分)をエミュレートする簡単な方法があるのだろうかと思います。

誰でも?

人気のある回答

CookieHtmlAgilityPackを一緒に使う必要があるときや、カスタムリクエストを作成するとき(例えば、 User-Agentプロパティを設定するときなど)は、ここで私がしていることです:

  • 要求/応答をカプセル化するクラスを作成します。このクラスのWebQuery呼び出しましょう
  • そのクラスの中にプライベートなCookieCollection (あなたの場合はpublic )プロパティを持っている
  • 手動で要求を行うクラス内にメソッドを作成します。署名は次のとおりです。

...

public HtmlAgilityPack.HtmlDocument GetSource(string url);

この方法の中で何をする必要がありますか?

HttpWebRequestHttpWebResponseを使用して手動でhttpリクエストを生成します(インターネットでこれを行う方法の例がいくつかあります)。ストリームを受け取るコンストラクタを使用してHtmlDocumentクラスのインスタンスを作成します。

私たちは何の流れを使いますか?まあ、戻った人は:

public HtmlAgilityPack.HtmlDocument GetSource(string url);

HttpWebRequestを使用してクエリを作成する場合は、新しいページにアクセスするたびに宣言した変数にCookieContainerプロパティを簡単に設定できます。そのため、 アクセスするサイトによって設定されたすべてのCookieがCookieContainer変数に適切に格納されますあなたは、あなたの中で宣言WebQueryあなたの唯一のインスタンスを使用している数に取って、 クラス WebQueryクラスを。

この説明が役立つことを願っています。これを使うと、 HtmlAgilityPackがサポートしているかどうかにかかわらず、何でもできます。




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ