HtmlAgilityPack.HtmlDocument 쿠키

cookies dom html-agility-pack javascript

문제

이는 스크립트 내부에 설정된 쿠키 (스크립트 태그 내부)와 관련이 있습니다.

System.Windows.Forms.HtmlDocument 해당 스크립트를 실행하고 Cookies 속성을 통해 document.cookie=etc... 와 같은 쿠키 집합을 검색 할 수 있습니다.

나는 HtmlAgilityPack.HtmlDocument 가 이것을 (실행)하지 않는다고 가정한다. System.Windows.Forms.HtmlDocument 기능 (쿠키 부분)을 에뮬레이션하는 쉬운 방법이 있는지 궁금합니다.

누군가?

인기 답변

쿠키HtmlAgilityPack을 함께 사용해야하거나 사용자 정의 요청 (예 : User-Agent 속성 설정 등)을 수행 해야하는 경우 다음 과 같습니다.

  • 요청 / 응답을 캡슐화하는 클래스를 만듭니다. 이 클래스 WebQuery 호출 해 보겠습니다.
  • 해당 클래스 내부에 private CookieCollection (귀하의 경우 공개 ) 속성이 있어야합니다.
  • 수동으로 요청을 수행하는 클래스 내부에 메서드를 만듭니다. 서명은 다음과 같습니다.

...

public HtmlAgilityPack.HtmlDocument GetSource(string url);

이 방법으로 무엇을해야합니까?

음, HttpWebRequestHttpWebResponse 를 사용하여 HTTP 요청을 수동으로 생성합니다 (인터넷에서이 작업을 수행하는 방법에 대한 몇 가지 예가 있음). 스트림을 수신하는 생성자를 사용하여 HtmlDocument 클래스의 인스턴스를 만듭니다.

우리는 어떤 물줄기를 사용해야합니까? 글쎄, 그 중 하나가 반환 :

public HtmlAgilityPack.HtmlDocument GetSource(string url);

HttpWebRequest 를 사용하여 쿼리를 만들면 새 페이지에 액세스 할 때마다 전에 선언 한 변수에 CookieContainer 속성을 쉽게 설정할 수 있습니다. 그러면 액세스하는 사이트에서 설정 한 모든 쿠키가 CookieContainer 변수에 올바르게 저장됩니다 당신은 당신의 선언 WebQuery 사용자가 하나의 인스턴스 만 사용하는 수에 복용, 클래스 WebQuery 클래스를.

희망이 설명을 유용하게 찾을 수 있습니다. HtmlAgilityPack이 지원하는지 여부에 관계없이 이것을 사용하면 원하는대로 할 수 있습니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.