C#检索数据,例如在jQuery中

本文关键字:jQuery 检索 数据 | 更新日期: 2023-09-27 18:36:34

我构建了一个网络浏览器并检索页面的内容...

但是现在将源X次切割很奇怪。

我想要实现的是用一些数据填充ListView。这是一个示例表,其中包含我需要的一些数据。

<div id="hostsindex">
  <div class="right-actions folder-tab">
    <a href="/.../.../">Details</a> -
    <a href="/../../...html">Add</a>
    - <a href="/../.../.....html">Update</a>
  </div>
  <table class="glossy">
    <thead>
      <tr><th colspan="3">Services</th></tr></thead>
    <tbody>
      <tr>
        <th width="40%">Hostname</th>
        <th width="30%">Service</th>
        <th>Info</th>
      </tr>
      <tr class="notranslate">
        <td><a href="/.../.../foo.bar.org">foo.bar.org</a></td>
        <td>Host</td>
        <td>11.222.333.444</td>
      </tr>
      <tr class="notranslate">
        <td><a href="/.../.../hello.world.org">hello.world.org</a></td>
        <td>Host</td>
        <td>555.666.777.88</td>
      </tr>
    </tbody>
  </table>
</div>

我要做的是选择<div id="hostsindex">内的所有<tr class="notranslate">

所以最后我想要一个填充tr的数组

目前我的源代码被剪切了几次,但我想知道 C# 中是否有用于 Web 浏览器的选择器或查询选择器之类的东西?

或者有没有办法在全部选定的元素上进行元素选择?

样本

HtmlElementCollection data = webBrowser1.Document.GetElementById("hostsindex");
//now do some query/selection on data ?

C#检索数据,例如在jQuery中

您是否尝试过HTML Agility Pack,它也可以通过NuGet直接在Visual Studio中使用。 您可以将整个页面的HTML放入HTMLDocument对象中,然后拉回所需的任何集合。

例如:

var nodes = htmlDoc.DocumentNode.Descendants("tr").Where(d => d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("notranslate"));

其中htmlDoc将是你的HTMLDocument对象。 然后,您可以遍历"节点"集合并根据需要进行操作。