나는 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 버전은 다음을 참조하십시오.