HTML AgilityPack 참고 헤더 찾기

c# html-agility-pack web-scraping

문제

웹 사이트에서 데이터를 가져 오려고합니다.

일부 헤더 세부 정보를 찾는 데 문제가 있습니다. 내 코드는 헤더를 건너 뛰기 만하면된다. " <h4 class "는 내가 꺼내려고한다.

또한 다른 브라우저에는 다른 데이터가 들어 있습니다.

예를 들면.

    <section class="results-list">
      <header>
        <h3>U.S. House</h3>
      </header>

      <section class="results-group">
        <header>
          <h4 class="district">Florida 1st congressional district</h4>
        </header>
        <div class="container">
          <div class="row clearfix">



<article class="results fifty">

  <header>
    <h4>Democrat primary</h4>
  </header>

  <section class="results-table">
    <table>
      <tr class="header results-table-row">
        <th class="vote-percent">Percent</th>
        <th class="candidate">Candidate</th>
        <th class="vote-count">Votes</th>
        <th class="winning">Winner</th>
      </tr>

        <tr>
          <td class="vote-percent">55%</td>
          <td class="candidate">Jennifer Zimmerman</td>
          <td class="vote-count">13090</td>
          <td class="winning">WINNER</td>
        </tr>

    </table>
  </section>
</article>

여기 내 코드가있다.

        foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table"))
        {
            var temp = table.InnerHtml.ToString();

            foreach (HtmlNode row in table.SelectNodes("tr"))
            {
                ResultsListBox.Items.Add(row.InnerText.ToString());

                foreach (HtmlNode cell in row.SelectNodes("th|td"))
                {
                    ResultsListBox.Items.Add(cell.InnerText.ToString());
                    Console.WriteLine("cell: " + cell.InnerText);
                }
            }
        }

수락 된 답변

class 속성이있는 h4 요소 인 페이지에 넣으려는 헤더가 하나만 있다고 가정하면 다음 XPath 쿼리를 시도 할 수 있습니다.

var queryHeader = "//section/header/h4[@class]";
var header = doc.DocumentNode.SelectSingleNode(queryHeader);
Console.WriteLine("header: " + header.InnerText);



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