html-agility-pack 相关问题

HTML Agility Pack是一个开源HTML解析器,可构建读/写DOM并支持Linq,普通XPATH或XSLT。

HtmlAgilityPack:在循环节点集合时如何从节点中删除标签?

在循环节点集合时如何从节点中删除标签 我正在循环浏览一个复杂的文档 对于每个节点作为 HtmlNode 在 document.DocumentNode.SelectNodes("//

回答 1 投票 0

如何使用 HTMLAgilityPack 从 HTML 中删除空行?

我有一个 HTML 文档,其中包含许多不必要的空行,我想将其删除。以下是 HTML 示例: 标题&... 我有一个 HTML 文档,其中包含许多不必要的空行,我想将其删除。这是 HTML 示例: <html> <head> </head> <body> <h1>Heading</h1> <p>Testing 我尝试了以下代码,但它删除了每个换行符,我只想删除那些空行。 static string RemoveLineReturns(string html) { html = html.Replace(Environment.NewLine, ""); return html; } 知道如何使用 HTMLAgilityPack 做到这一点吗? 谢谢, J. 使用 Html Agility Pack 的一种可能方法: var doc = new HtmlDocument(); //TODO: load your HtmlDocument here //select all empty (containing white-space(s) only) text nodes : var xpath = "//text()[not(normalize-space())]"; var emptyNodes = doc.DocumentNode.SelectNodes(xpath); //replace each and all empty text nodes with single new-line text node foreach (HtmlNode emptyNode in emptyNodes) { emptyNode.ParentNode .ReplaceChild(HtmlTextNode.CreateNode(Environment.NewLine) , emptyNode ); } 我认为 HTMLAgilityPack 目前没有为此提供原生解决方案。 对于这种情况,我使用以下正则表达式: html = Regex.Replace(html, @"( |\t|\r?\n)\1+", "$1"); 这可以正确保留空格和行结尾,同时将多个制表符、换行符和空格压缩为一个。 在 Linq 的这些日子里,我建议如下: Regex r = new Regex(@"\S", RegexOptions.Compiled); var cleanHtml = string.Join( Environment.NewLine, dirtyHtml.Split(new char[]{'\n', '\r'}, StringSplitOptions.RemoveEmptyEntries) .Where(l => r.Matches(l).Count > 0) );

回答 3 投票 0

为什么我在使用 HtmlAgilityPack 抓取时收到“启用 javascript 和 cookies 以继续”消息?

我想从网络上抓取数据,我正在使用 HtmlAgilityPack (c#) 中的 HtmlWeb、HtmlDocument 但我只是从我的数据中收到一条“启用 javascript 和 cookies 以继续”的消息...

回答 1 投票 0

启用 javascript 和 cookies 以在 winserver 2019 上继续 C#

我想从网络上抓取数据,我正在使用 HtmlAgilityPack (c#) 中的 HtmlWeb、HtmlDocument 但我只从我加载的数据中收到“启用 javascript 和 cookies 以继续” 任何...

回答 1 投票 0

Html Agility Pack 在另一个网站上执行搜索并解析

我正在尝试创建跟踪页面,该页面将在多个网站上进行搜索并解析结果。到目前为止,我创建了控制器和视图,但它不起作用。有什么想法如何处理吗? 我的

回答 1 投票 0

如何使用 C# HtmlAgilityPack 从网站中获取以下文本?

我需要在C#中使用HtmlAgilityPack从下面的结构中取出文本“223M”,我该怎么做? 我需要在C#中使用HtmlAgilityPack从下面的结构中取出文本“223M”,我该怎么做? <div data-widget="quote-options-flow-summary" data-mode="desktop" data-symbol="AAPL"> <div class="options-flow-summary"> <div data-app="summary-element" data-id="overall_flow"> <h2 class="summary-type"> Overall Flow <i class="fas fa-info-circle" title="Determined based on positive or negative net premiums."> </i> </h2> <h3 data-app="summary-value" style="color:#009c3d"> Bullish </h3> </div> <div data-app="summary-element" data-id="net_premium"> <h2 class="summary-type"> Net Premium <i class="fas fa-info-circle" title="Calculated value of calls premium minus put premium in the filtered Flow."> </i> </h2> <h3 data-app="summary-value" style="color:#009c3d"> 223M </h3> </div> </div> </div> 我是 HtmlAgilityPack 的新手,所以我不知道如何用它做任何事情,尤其是 h3 中的 data-app="summary-value" 让我感到困惑,因为我不知道这是否是我应该参考的内容我抓取文本“223M” 沿着以下路线: var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(html); string premium = htmlDoc.DocumentNode .SelectSingleNode("//div[@data-id='net_premium']").SelectSingleNode("h3[@data-app='summary-value']").InnerText; 函数中的字符串是XPath expressions https://html-agility-pack.net/select-single-node http://dotnetfiddle.net/pXItfm

回答 1 投票 0

在 HTML 中搜索单词并用 Span 括起来进行标记

我有 HTML 内容(通过 CMS 编辑的内容,而不是整个网站页面),当执行搜索时,我需要通过用跨度包裹单词来突出显示搜索到的单词。 所以,考虑一下...

回答 1 投票 0

亚马逊和 HTML AgiltiyPack

似乎我的所有请求都遇到了 500 服务错误。 但我可以通过 Web 浏览器访问该网站。我也通过 HAP 发送 UserAgent。 有没有...

回答 1 投票 0

需要查询 XPath,找到包含 7 个 <tr> 元素的所有 <td> 元素

您好,希望感谢您的帮助。 老实说,我对 XPath 的经验不是很丰富,我希望那里的专家能给我一个快速的答案。 我正在抓取网页以获取数据。定义...

回答 1 投票 0

HTML Agility Pack 屏幕抓取 XPATH 不返回数据

我正在尝试为 Digikey 编写一个屏幕抓取工具,这将使我们公司能够在零件停产时准确跟踪价格、零件可用性和产品更换。 那里有...

回答 2 投票 0

抓取 .HTM 文件时遇到问题

我刚刚开始从网页上抓取基本文本,目前正在使用 HTMLAgilityPack C# 库。 我在竞争对手.yahoo.com 上取得了一些成功(体育是我的爱好,所以为什么不 SC...

回答 2 投票 0

HtmlAgilityPack - 获取 DIV 内容

我正在尝试使用 WinForms C# 中的 HtmlAgilityPack 从 DIV 中获取一些文本。 我的代码是: var doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml("http://www.tibia.com/news/?subtopic=latestne...

回答 2 投票 0

使用 HtmlAgilityPack 抓取精确的字符串

我正在尝试从 YouTube 视频中抓取视频标签,尽管我遇到了困难,但它应该非常简单。 我找不到很多关于我想要找到的内容的文档,所以现在我问......

回答 1 投票 0

无法使用 HTML Agility Pack 抓取所有 HTML 代码

我有以下 C# 控制台应用程序代码,它使用 HTMLAgilityPack 来分析一些示例 HTML: 静态无效主(字符串[]参数) { 字符串输入=@” T...

回答 1 投票 0

Html-Agility-Pack 未加载包含完整内容的页面?

我正在使用 Html Agility Pack 从网站获取数据(抓取) 我的问题是我正在获取数据的网站在页面加载几秒钟后加载了一些内容。 所以无论何时我都

回答 1 投票 0

如何抓取网站仅用于导航菜单

我正在构建一个抓取网站的程序。 它查看整个网站,仅获取该网站的页眉和页脚导航菜单,然后插入新的 html 标签(div、p、table 等...

回答 1 投票 0

如何在同一循环和行中获取Tag内部文本和属性值HtmlAgilityPack C#

以下是我正在处理的 HTML; (C# 项目) ` 以下是我正在处理的 HTML; (C# 项目) </TR> <TR> `<TD ALIGN="center"> <INPUT TYPE="checkbox" NAME="f0" VALUE="14652 4-76-17-7-2024-R" ONCLICK=uncheck("f0")> &nbsp;</TD> <TD>&nbsp;</TD> <TD>76/07-17</TD> <TD>14652</TD> <TD>&nbsp;</TD> <TD>9.3</TD> <TD> 78 </TD> <TD>&nbsp;</TD> <TD>&nbsp;</TH> </TR> 我可以通过循环获取 tr[td] 内部文本。 但在同一个循环中,我无法访问“输入”属性(名称/值)以将值提取为数组以维护数据完整性。 HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(page); foreach (var row in doc.DocumentNode.SelectNodes("//tr[td]")) //textBox5.Text { table.Rows.Add(row.SelectNodes("td").Select(td => td.InnerText).ToArray()); string namee1 = row.InnerText; //These works but without the attribute details. string Code_num = row.SelectSingleNode("//td//input").Attributes["value"].Value; // this gives only the first value without looping. MessageBox.Show(namee); } Code_num - 仅给我第一个值,而不循环遍历文档。 属性不选择,我只得到空引用。我对 linq 不太熟悉。如果可能的话,更喜欢 xpath 的帮助。 感谢您的帮助!提前致谢 期望输出如下; 第 1 列 / 第 2 列 / 第 3 列 / 第 4 列 / 第 5 列 / 第 6 列 / 第 7 列 / 第 8 列 / 第 9 列 / 第 10 列 / 第 11 列 / /76/07-17/14652/ /9.3/ 78 / /  /F0 / 14652 4-76-17-7-2024-R 预期输出 以下内容对我有用!由于早期值不完整,因此空引用阻塞了我的代码。 希望这对某人有帮助!! foreach (var row in doc.DocumentNode.SelectNodes("//tr[td]")) { string pos = "0"; pos = row.SelectSingleNode("td//input")?.Attributes["name"].Value; string injid = row.SelectSingleNode("td//input")?.Attributes["value"].Value; table.Rows.Add((row.SelectNodes("td").Select(td => td.InnerText).ToArray())); if (string.IsNullOrEmpty(pos)) { } else { int ronum = table.Rows.Count - 1; DataRow dr = table.Rows[ronum]; dr[9] = pos; } if (string.IsNullOrEmpty(injid)) { } else { int ronum = table.Rows.Count - 1; DataRow dr = table.Rows[ronum]; dr[10] = injid; } }

回答 1 投票 0

使用 html 敏捷包抓取网站,查找类

我正在尝试使用 HTML Agility pack 从 html 字符串中获取一些数据。 我试图从中获取数据的行 string[] 返回innerhtml,如下所示: 议会...

回答 2 投票 0

在 C# 中,如何比较两个 HTML 文件的结构,然后更新第二个文件以匹配第一个文件?

考虑我有两个结构相同的 HTML 文件,除了用于填充每个元素的语言(即英语与西班牙语)之外。 在第一个文件中,我将添加一个自定义元素

回答 1 投票 0

使用 HTML Agility Pack 获取元素结尾?

我正在使用 HTML Agility Pack 来解析 HTML,我需要知道 HTML 中每个元素的位置。 HtmlNode.StreamPosition 为我提供了 HTML 中的位置,效果很好。不过,我会...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.