问题标签 [anglesharp]

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 回答
1452 浏览

c# - 如何在没有 AsyncEx 库的情况下调用 Anglesharp 异步方法?

使用AngleSharp加载 HTML 页面并等待下载所有样式表(如果需要)并且所有脚本都准备好执行解析器,我这样做

AsyncContext 是AsyncEx库的一部分。

如果没有 AsyncEx 库,是否可以做同样的事情?

0 投票
1 回答
2838 浏览

c# - 如何使用 AngleSharp 选择节点和父节点?

使用 HtmlAgilityPack,我这样做

关于如何使用 AngleSharp 和 CSS 选择器执行此操作的任何想法?

0 投票
2 回答
957 浏览

c# - 在 TextContent 中保留(或恢复)空格

使用 AngleSharp 处理一些 HTML 并提取元素的文本内容以供以后挖掘,我遇到了 AngleSharp 去除 HTML 标签的方式的问题。例如,我有一段类似这样的 HTML(减去换行符和制表符):

这里的问题是当我得到TextContent

它会像这样出来:

单词actionTypical被拼凑在一起,没有任何空格(因为它们之间唯一的东西是html标签)。这阻碍了我对文本内容进行标记的努力,因为action.Typical它被视为一个单词而不是两个单词。

当然,我可以只运行搜索和替换(可能使用正则表达式)之类的东西(\S)\.(\S)并将其替换为,$1. $2但随后将需要类似的东西www.somecompany.com并将其拆分为wwwsomecompany并且com可能想保留它(或失败www并且com它们本身不太可能非常有用)。我可以排除带有多个点的单词,但网址可能会显示为somecompany.com(不带www),或者您可能会遇到类似的电子邮件地址somebody@somecompany.com

有没有一种强大的方法来解决这个问题?在标签被剥离后至少保留一个空格?

0 投票
1 回答
838 浏览

c# - 为什么 AngleSharp 不为交错文本生成 TextNode?

我正在尝试使用 AngleSharp 库来解析一些 HTML,到目前为止它非常棒。我现在偶然发现了一个我想解析以下 HTML 的场景:

当然,这段 HTML 有封闭的父元素等,但是这段 HTML 的解析元素的结果列表是:

  • HtmlAnchorElement
  • HtmlBoldElement
  • HtmlBreakRow 元素

有效地跳过元素之间的文本。如何获取此文本?我认为 AngleSharp 会为这些部分生成 TextNodes 吗?

请注意,获取父级的完整 TextContent 不是我想要做的,因为我实际上仍然需要元素的结构来知道什么是什么。

0 投票
3 回答
851 浏览

c# - 使用 RegEx 查找 HTML / XML 节点

我正在解析许多 HTML 文档,并且在每个文档中都需要尝试提取一个英国邮政地址。为此,我使用 AngleSharp 解析 HTML,然后查找与我的 RegEx 匹配的 TextContent 节点:

这将返回 3 个结果、htmlbody元素p。我要返回的唯一元素是 p 元素,因为它的 innerText 与正则表达式正确匹配。一个页面上可能还有多个匹配项,所以我不能只返回最后一个结果。我希望只返回该元素中的文本(不在任何子节点中)与正则表达式匹配的任何元素。

编辑

我事先不知道文档结构,甚至不知道邮政编码所在的标签,这就是我使用正则表达式的原因。一旦我得到结果,我计划遍历 dom 以获取地址的其余部分,所以我不只是想将 doc 视为字符串

0 投票
1 回答
1426 浏览

c# - 使用 AngleSharp 从 html 注释中去除已解析的 html 文本

我使用下面的代码从解析的 html 中剥离特定的 html 标记AngleSharp(因为建议使用正则表达式来执行此类工作(AngleSharp目前已维护,HtmlAgilityPack不是,因此我一直在转向后者)。

它工作得很好 - 但现在我也想删除 html 评论。<!--意思是在和-->标签之间找到的任何东西。

这将如何实现AngleSharp?在这里使用 QuerySelector 似乎不合适。

0 投票
1 回答
3433 浏览

c# - 使用 AngleSharp 获取和下载图片

我开始在项目中使用 Anglesharp,我不仅需要获取和下载 HTML,还需要获取和下载文档的图像。我知道在 Document 对象中有一个名为 Images 的属性,但显然它并没有得到所有这些,我在 YouTube 页面上做了一个测试,结果只有一个(重复了几次)。例如,我想获取当前视频的缩略图,这似乎在<meta>标签内。更准确地说,图像存储在这种标签中:

所以我想知道是否有一种方法可以选择页面内任何图像的所有节点/url,无论使用什么标签。我认为 QuerySelectorAll 在这种情况下不起作用,因为它只选择一种类型的节点。您可以尝试在 github 上找到的示例代码来验证这一点(我刚刚用 YouTube 更改了 url,并且选择器也更改了 :D):

哦,舒尔,您还可以添加这个来检查 Image 属性是否没有获取视频缩略图:

还有其他基于 URL 内容选择节点的方法吗?(就像所有以“.jpg”或“.png”等结尾的网址)

0 投票
1 回答
120 浏览

anglesharp - Anglesharp 将单引号转换为双引号?

看来 AngleSharp 将单引号转换为双引号。这是真的?如果是这样,它会影响我从请求中获取 JSON 数据的能力。我正在调用一个控制器,该控制器返回包装在 json 对象中的 html。部分 html 具有使用单引号的属性。调用 OpenAsync 方法后,生成的文档会将它们转换为双引号。因此,当我使用 Newtonsoft.Json 时,它会尝试基于这些反序列化。有没有办法通过配置设置来防止这种情况发生?

0 投票
1 回答
16412 浏览

c# - AngleSharp 解析

当您没有要使用的类名或 id 时,找不到很多使用 AngleSharp 进行解析的示例。

HTML

我想从任何<a>具有标题 = Bing 的标签中找到 href

在 Python BeautifulSoup 中,我会使用

然后获取 href 属性

或 jQuery

但是,我被困在使用 AngleSharp 例如。以下示例 https://github.com/AngleSharp/AngleSharp/wiki/Examples#getting-certain-elements

c# AngleSharp

0 投票
1 回答
567 浏览

c# - AngleSharp 和 XHTML 往返

我正在尝试使用 AngleSharp 解析 XHTML 文件,进行更改,然后将其输出。但是,我在使输出与输入匹配时遇到了一些问题。

  • 如果我使用 XML 解析器并且XMLMarkupFormatterHtmlMarkupFormatter得到没有自结束标记(都是<img></img>)并且没有 XML 声明。

  • 如果我使用 HTML 解析器并且HTMLMarkupFormatter我得到 XML 无效的自关闭标签(都是简单的<img>)并且没有 XML 声明。

  • 如果我使用 HTML 解析器并且XMLMarkupFormatter我得到很好的自结束标记 ( <img />) 和 XML 声明 - 但是,XML 声明作为注释被拾取并输出为<!-- <?xml version="1.0" encoding="UTF-8"?> -->

有没有办法解决这个问题还是我需要自己写MarkupFormatter