问题标签 [html-agility-pack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7008 浏览

c# - HTML Agility Pack - 在特定节点之后选择节点

在 codeplex 讨论中提出了这个问题,但我希望在 stackoverflow 上得到更快的答案。

因此,我使用 HTML Agility Pack 在 C# 中进行 HTML 解析。我有以下html结构:

而且我需要获取在具有类“特定”的 p 元素之后存在的所有具有类“段落”的 p 元素。

有没有办法做到这一点?

谢谢。

0 投票
1 回答
671 浏览

c# - 使用格式错误的内容抓取网页时遇到问题

我编写了利用 HtmlAgilityPack 库的 c# 代码,以便抓取位于以下位置的页面:World's Largest Urban Areas (Page 2)。不幸的是,该页面包含格式错误的内容。

我在如何抓取此页面方面陷入僵局。我拥有的当前代码(出现在下面)在解析 HTML 时冻结:

目标是用每个数据点解析页面上列出的每个城市;而已。寻找有关如何修改上述代码或使用另一个免费提供的库的建议。

谢谢!

0 投票
2 回答
2575 浏览

c# - 当没有关闭的 html 标签时,是否可以解决 HtmlAgilityPack 中的问题?

好吧,我有以下问题。
我拥有的 html 格式不正确,在这种情况下,我在使用 html 敏捷包选择节点时遇到问题。
代码如下:

问题是 String_A2_2 括在括号中。
所以 htmlagility 包在 lststrText 中返回 5 个字符串而不是 4 个。
那么是否可以让 htmlagility pack 将元素 3 返回为 "<strong>Elem_A</strong>String_A2_2 <String_A2_2> asdas"
或者我可以做一些预处理来关闭元素?
lststrText 的当前内容是

0 投票
1 回答
871 浏览

c# - 将节点类型更改为#text,同时使用 HtmlAgilityPack 保留内部节点

我正在使用HtmlAgilityPack来解析要转换为 HTML 的 XML 文件。一些节点将被转换为 HTML 等价物。其他不必要的我需要在保留内容的同时删除。我尝试将其转换为 #text 节点,但没有成功。这是我的代码:

最后,如果找不到节点,我需要进行节点替换(您会看到“替换为#text”注释)。我整天都在扯我的头发(剩下的),这可能很愚蠢。我无法获得编译帮助,也没有在线版本。帮助 Stackoverflow!你是我唯一的希望。;-)

0 投票
3 回答
161 浏览

c# - 按大多数图像排序节点?

这听起来可能有点复杂,但我想做的是找到所有<a>包含<img>s 的 s ,以便首先选择位于同一节点中且其他图像数量最多的图像。

例如,如果我的页面如下所示:

http://img684.imageshack.us/img684/5678/imagechart.gif

如果蓝色方块是<div>s,粉红色方块是<img>s,则中间div包含最多的图像,然后首先选择这些图像。由于它们没有比这更深的嵌套,它们只是按照它们在页面上的顺序出现。接下来选择第一个 div(包含第二多的图像),依此类推......这有意义吗?

我们可以递归地思考它。首先body将被选择,因为它总是包含最多的图像,然后检查每个直接子节点以查看哪个包含最多图像后代(不一定是直接的),然后我们进入该节点,并重复......

0 投票
4 回答
2315 浏览

c# - 如何解析这段 HTML?

早上好!我正在使用 c#(框架 3.5sp1)并想通过正则表达式解析以下 html:

我需要以下输出:

  • 第一组:h1的内容
  • 第 2 组:h1 跟随文本的内容
  • 第 3-n 组:子标题的内容 + 文本

我有什么自动取款机:

由于尾随<hr/>. 为了解析 h1 标题,我有另一个模式 ( <h1.*?>(.*?)</h1>),它只给我标题而不是内容 - 我对那个 atm 很好。

是否有人对我或任何替代逻辑有提示/解决方案(例如,通过阅读器解析 html 并以这种方式分配它?)?

编辑:
由于一些人引入了HTMLAgilityPack,我对这个不错的工具很好奇。我完成了获取<h1>-tag的内容。
但是......我的问题是解析其余的。这是由以下原因引起的:内容的标签可能会有所不同 - 从<p>to<div><ul>... atm 这似乎或多或少地迭代整个文档并解析标签的标签 ...?任何提示?

0 投票
1 回答
455 浏览

asp.net - HtmlAgilityPack 表达式得到这个?

嗨,我正在使用 HtmlAgilityPack 浏览一个 html 字符串。现在我需要得到一个标签之间的一切。它看起来像这样。

现在我用这个表达式来完成这个任务。 编辑:

我只得到了第 6 个,但大约有 24 张桌子。为什么,有什么想法吗?

0 投票
1 回答
914 浏览

c# - 使用 HTML Agility Pack 删除带前缀的标签

我正在尝试使用 HAP 访问带有前缀的标签,但以下内容不起作用(它们不返回任何内容):

有什么想法吗?

编辑:

HTML 看起来像这样: <p>Men's Standings<br /> <sc:xslfile runat="server" datasource="/Global/Tables/1_01/9859_" id="WC_9859"></sc:xslfile> <br /><br /><br /> Women's Standings <br /><sc:xslfile runat="server" datasource="/Global/Tables/1_01/9860_" id="WC_9860"></sc:xslfile></p>

@Pat,我尝试了starts-with,但仍然不行。

也许是因为标签是空的?

0 投票
1 回答
2742 浏览

c# - 全选

来自使用 HTMLAgilityPack 的节点的孩子

我有以下用于获取 html 页面的代码。将网址设为绝对网址,然后将链接设为 rel nofollow 并在新窗口/选项卡中打开。我的问题是围绕向<a>s 添加属性。

谁能看到我做错了什么?在这里尝试了一段时间没有运气。此代码出现 ContentNode.SelectNodes("/a") 未设置为对象的实例。我想尝试将蒸汽设置为0?

干杯,丹尼斯

0 投票
2 回答
34238 浏览

c# - 如何使用 HTML Agility Pack 从网站检索所有图像?

我刚刚下载了 HTMLAgilityPack,文档没有任何示例。

我正在寻找一种从网站下载所有图像的方法。地址字符串,而不是物理图像。

我需要提取每个 img 标签的来源。我只是想了解一下图书馆以及它可以提供什么。每个人都说这是完成这项工作的最佳工具。

编辑