HtmlAgilityPack html 읽기 문제

.net c# html html-agility-pack parsing

문제

나는 C #에서 웹 사이트를 읽고 문자열로 내용을 얻는다 .... HTML 구조가 잘 형성되지 않은 사이트가있다.

나는 HtmlAgilityPack을 사용하고 있는데이 경우에 문제가된다.

당신은 사람들이 내가 전체 문자열을 읽을 수 있고 유용한 정보를 얻을 수 있도록 무엇을 사용해야하는지 제안 할 수 있습니까?

여기 내 코드가있다.

 htmlDoc.LoadHtml(s);
  if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0)

이 IF 조건이 제 경우에 해당되는 이유는 무엇입니까?

수락 된 답변

당신이 얻고있는 오류는 무엇입니까? 예외가 발생 했습니까 아니면 오류를보고 싶습니까? 실제 질문이 무엇인지 말하기가 어렵습니다.

HtmlDoc.ParseErrors 속성을 사용하여 HTML에서 마크 업 오류를 확인하고 반복 할 수 있습니다. 그러면 줄 번호, 코드 및 오류 유형이 표시됩니다.

이 속성에 대한 자세한 정보는 https://stackoverflow.com/a/5367455/235644에서 볼 수 있습니다.

편집하다

좋아, 답장을 보내신 후 질문을 업데이트하셨습니다. 위에서 설명한대로 .ParseErrors 를 반복하면서 IF 문에서 true를 반환하는 특정 오류를 볼 수 있습니다.

두 번째 편집

오류를 반복 할 수 있습니다.

 foreach (var error in htmlDoc.ParseErrors)
 {
      Debug.WriteLine(error.Line);
      Debug.WriteLine(error.Reason);
 }

인기 답변

html이 외부 적이 고 수정할 수 없다면 먼저 정리 전 처리기를 통해 실행 한 다음 HtmlAgilityPack 구문 분석 할 수 있습니다.

이렇게하면 HtmlAgilityPack 이 자동으로 많은 문제를 해결하기 전에 자동으로 문제를 해결하려고 시도합니다. 가장 인기있는 HTML 정리 도구는 Tidy입니다. .NET 버전은 다음을 참조하십시오.

http://sourceforge.net/projects/tidynet/



Related

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