HtmlAgilityPack - DIV 콘텐츠 가져 오기

c# html html-agility-pack scrape string

문제

WinForms C #에서 HtmlAgilityPack을 사용하여 DIV에서 일부 텍스트를 가져 오려고합니다.

내 코드는 다음과 같습니다.

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml("http://www.tibia.com/news/?subtopic=latestnews");
var res = doc.DocumentNode.SelectSingleNode("//div[@id='PlayersOnline']");
var content = res.InnerHtml;

// Print content
MessageBox.Show(content);

내가 얻으려고하는 내용은 다음과 같습니다. http://www.tibia.com/news/?subtopic=latestnews

웹 사이트의 오른쪽 상단에는 "Players Online"의 양을 나타내는 상자가 있습니다. 나는 그 금액을 얻고 싶다.

웹 사이트의 HTML은 다음과 같습니다.

<div id="PlayersOnline" onclick="window.location = 'https://secure.tibia.com/community/?subtopic=worlds';">11723<br>Players Online</div>

그래서 저는 11723 을 산출물로 만들고 싶습니다. 그것은 내가 전체를 얻을 경우 중요하지 않습니다 : 11723<br>Players Online 출력. 그냥 정규식을 나중에 일치하거나 문자열 또는 뭔가를 분할, 브래지어 태그를 무시할 수 있습니다.

하지만 내 코드는 작동하지 않으며 그 이유를 모르겠습니다. 응용 프로그램이 충돌하고 말한다.

System.NullReferenceException: 'Object reference not set to an instance of an object.'

<res>5__8 was null.

인기 답변

InnerHtml 대신 InnerText 를 사용해보십시오.

var content = doc.DocumentNode.SelectSingleNode("//div[@id='PlayersOnline']").InnerText;


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