내 모든 콘텐츠를 어떻게 얻을 수 있습니까? 태그를 사용하여 HTML 애자일 팩을 만드시겠습니까?

c# html-agility-pack screen-scraping

문제

그래서 저는 작은 화면을 긁어 모으는 응용 프로그램을 작성하고 있습니다. HTML HtmlDocoument 을 사용하여 전체 HTML 페이지를 doc 이라는 HtmlDocoument 의 인스턴스로로드합니다. 이제 나는 그 문서를 파싱하고 이것을 찾고 싶다.

<table border="0" cellspacing="3">
<tr><td>First rows stuff</td></tr>
<tr>
<td> 
The data I want is in here <br /> 
and it's seperated by these annoying <br /> 's.

No id's, classes, or even a single <p> tag. </p> Just a bunch of <br />  tags.
</td> 
</tr> 
</table> 

그래서 나는 단지 2 열 이내에서 데이터를 얻을 필요가 있습니다. 어떻게해야합니까? 정규식 또는 다른 것을 사용해야합니까?

업데이트 : 여기 내 doc 로드하는 방법입니다.

HtmlWeb hw = new HtmlWeb();
HtmlDocument doc = hw.Load(Url);

수락 된 답변

Html Agility Pack을 사용하고 있기 때문에 원하는 정보를 찾기 위해 제공하는 방법을 사용하는 것이 좋습니다. 문서를 탐색하는 데는 몇 가지 방법이 있지만 가장 간결한 방법 중 하나는 XPath 를 사용하는 것입니다. 이 경우 다음과 같이 사용할 수 있습니다.

HtmlDocument doc = new HtmlDocument();
doc.Load("input.html");
HtmlNode node = doc.DocumentNode
                   .SelectNodes("//table[@cellspacing='3']/tr[2]/td")
                   .Single();
string text = node.InnerText;




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