问题标签 [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.
c# - 如何在没有 AsyncEx 库的情况下调用 Anglesharp 异步方法?
使用AngleSharp加载 HTML 页面并等待下载所有样式表(如果需要)并且所有脚本都准备好执行解析器,我这样做
AsyncContext 是AsyncEx库的一部分。
如果没有 AsyncEx 库,是否可以做同样的事情?
c# - 如何使用 AngleSharp 选择节点和父节点?
使用 HtmlAgilityPack,我这样做
关于如何使用 AngleSharp 和 CSS 选择器执行此操作的任何想法?
c# - 在 TextContent 中保留(或恢复)空格
使用 AngleSharp 处理一些 HTML 并提取元素的文本内容以供以后挖掘,我遇到了 AngleSharp 去除 HTML 标签的方式的问题。例如,我有一段类似这样的 HTML(减去换行符和制表符):
这里的问题是当我得到TextContent
:
它会像这样出来:
单词action
和Typical
被拼凑在一起,没有任何空格(因为它们之间唯一的东西是html标签)。这阻碍了我对文本内容进行标记的努力,因为action.Typical
它被视为一个单词而不是两个单词。
当然,我可以只运行搜索和替换(可能使用正则表达式)之类的东西(\S)\.(\S)
并将其替换为,$1. $2
但随后将需要类似的东西www.somecompany.com
并将其拆分为www
,somecompany
并且com
我可能想保留它(或失败www
并且com
它们本身不太可能非常有用)。我可以排除带有多个点的单词,但网址可能会显示为somecompany.com
(不带www
),或者您可能会遇到类似的电子邮件地址somebody@somecompany.com
。
有没有一种强大的方法来解决这个问题?在标签被剥离后至少保留一个空格?
c# - 为什么 AngleSharp 不为交错文本生成 TextNode?
我正在尝试使用 AngleSharp 库来解析一些 HTML,到目前为止它非常棒。我现在偶然发现了一个我想解析以下 HTML 的场景:
当然,这段 HTML 有封闭的父元素等,但是这段 HTML 的解析元素的结果列表是:
- HtmlAnchorElement
- HtmlBoldElement
- HtmlBreakRow 元素
有效地跳过元素之间的文本。如何获取此文本?我认为 AngleSharp 会为这些部分生成 TextNodes 吗?
请注意,获取父级的完整 TextContent 不是我想要做的,因为我实际上仍然需要元素的结构来知道什么是什么。
c# - 使用 RegEx 查找 HTML / XML 节点
我正在解析许多 HTML 文档,并且在每个文档中都需要尝试提取一个英国邮政地址。为此,我使用 AngleSharp 解析 HTML,然后查找与我的 RegEx 匹配的 TextContent 节点:
这将返回 3 个结果、html
和body
元素p
。我要返回的唯一元素是 p 元素,因为它的 innerText 与正则表达式正确匹配。一个页面上可能还有多个匹配项,所以我不能只返回最后一个结果。我希望只返回该元素中的文本(不在任何子节点中)与正则表达式匹配的任何元素。
编辑
我事先不知道文档结构,甚至不知道邮政编码所在的标签,这就是我使用正则表达式的原因。一旦我得到结果,我计划遍历 dom 以获取地址的其余部分,所以我不只是想将 doc 视为字符串
c# - 使用 AngleSharp 从 html 注释中去除已解析的 html 文本
我使用下面的代码从解析的 html 中剥离特定的 html 标记AngleSharp
(因为建议使用正则表达式来执行此类工作(AngleSharp
目前已维护,HtmlAgilityPack
不是,因此我一直在转向后者)。
它工作得很好 - 但现在我也想删除 html 评论。<!--
意思是在和-->
标签之间找到的任何东西。
这将如何实现AngleSharp
?在这里使用 QuerySelector 似乎不合适。
c# - 使用 AngleSharp 获取和下载图片
我开始在项目中使用 Anglesharp,我不仅需要获取和下载 HTML,还需要获取和下载文档的图像。我知道在 Document 对象中有一个名为 Images 的属性,但显然它并没有得到所有这些,我在 YouTube 页面上做了一个测试,结果只有一个(重复了几次)。例如,我想获取当前视频的缩略图,这似乎在<meta>
标签内。更准确地说,图像存储在这种标签中:
所以我想知道是否有一种方法可以选择页面内任何图像的所有节点/url,无论使用什么标签。我认为 QuerySelectorAll 在这种情况下不起作用,因为它只选择一种类型的节点。您可以尝试在 github 上找到的示例代码来验证这一点(我刚刚用 YouTube 更改了 url,并且选择器也更改了 :D):
哦,舒尔,您还可以添加这个来检查 Image 属性是否没有获取视频缩略图:
还有其他基于 URL 内容选择节点的方法吗?(就像所有以“.jpg”或“.png”等结尾的网址)
anglesharp - Anglesharp 将单引号转换为双引号?
看来 AngleSharp 将单引号转换为双引号。这是真的?如果是这样,它会影响我从请求中获取 JSON 数据的能力。我正在调用一个控制器,该控制器返回包装在 json 对象中的 html。部分 html 具有使用单引号的属性。调用 OpenAsync 方法后,生成的文档会将它们转换为双引号。因此,当我使用 Newtonsoft.Json 时,它会尝试基于这些反序列化。有没有办法通过配置设置来防止这种情况发生?
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
c# - AngleSharp 和 XHTML 往返
我正在尝试使用 AngleSharp 解析 XHTML 文件,进行更改,然后将其输出。但是,我在使输出与输入匹配时遇到了一些问题。
如果我使用 XML 解析器并且
XMLMarkupFormatter
我HtmlMarkupFormatter
得到没有自结束标记(都是<img></img>
)并且没有 XML 声明。如果我使用 HTML 解析器并且
HTMLMarkupFormatter
我得到 XML 无效的自关闭标签(都是简单的<img>
)并且没有 XML 声明。如果我使用 HTML 解析器并且
XMLMarkupFormatter
我得到很好的自结束标记 (<img />
) 和 XML 声明 - 但是,XML 声明作为注释被拾取并输出为<!-- <?xml version="1.0" encoding="UTF-8"?> -->
有没有办法解决这个问题还是我需要自己写MarkupFormatter
?