빈 문서를 반환하는 HtmlAgilityPack HtmlWeb.Load

c# html html-agility-pack web-crawler

문제

웹 크롤러 응용 프로그램에서 지난 2 개월 동안 HtmlAgilityPack을 사용하여 웹 페이지를로드하는 데 문제가 없었습니다.

이제이 특정 웹 페이지를로드하려고하면 문서 OuterHtml이 비어있어이 테스트가 실패합니다.

var url = "http://www.prettygreen.com/";
var htmlWeb = new HtmlWeb();
var htmlDoc = htmlWeb.Load(url);
var outerHtml = htmlDoc.DocumentNode.OuterHtml;
Assert.AreNotEqual("", pageHtml);

사이트에서 설정과 같은 문제없이 다른 페이지를로드 할 수 있습니다.

var url = "http://www.prettygreen.com/";
var htmlWeb = new HtmlWeb();
var htmlDoc = htmlWeb.Load(url);
var outerHtml = htmlDoc.DocumentNode.OuterHtml;
Assert.AreNotEqual("", pageHtml);

과거에는 한 번 인코딩 문제가 있었지만 htmlWeb.OverrideEncoding 및 htmlWeb.AutoDetectEncoding을 사용하여 놀았습니다. 나는이 웹 페이지에서 무엇이 문제가 될 수 있는지 전혀 모른다.

수락 된 답변

이 웹 사이트에서 쿠키가 활성화되어 있어야합니다. 웹 요청에 대한 쿠키 컨테이너를 생성하면 문제를 해결할 수 있습니다.

var url = "http://www.prettygreen.com/";
var htmlWeb = new HtmlWeb();
htmlWeb.PreRequest += request =>
    {
        request.CookieContainer = new System.Net.CookieContainer();
        return true;
    };
var htmlDoc = htmlWeb.Load(url);
var outerHtml = htmlDoc.DocumentNode.OuterHtml;
Assert.AreNotEqual("", outerHtml);



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