问题标签 [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 回答
2538 浏览

c# - html解析器。加载文件或程序集失败

错误报告

你能在 MWE 中重现这个问题吗?

您正在运行最新版本的 AngleSharp 吗?
版本 - 0.10.1

您是否查看了常见问题解答以查看是否对您有帮助?
使用谷歌搜索。没有帮助

您是否向正确的存储库报告?(有多个 AngleSharp 库,例如,用于 CSS 支持的 AngleSharp.Css)
见屏幕

您是否在问题中进行了搜索? 搜索短语:“加载文件或程序集失败”

说明
我在应用程序启动期间收到错误“无法加载文件或程序集”

启动应用程序时出现 重现错误的步骤

环境详细信息:[操作系统、.NET 运行时,...]
Win 7x64。VS - 2017 .NET 框架 4.6.1

代码

我安装了:
“System.Text.Encoding.CodePages”。
错误仍然存​​在。
附加推理 -链接
Pic.1 在此处输入图像描述

图2 在此处输入图像描述

图3 在此处输入图像描述

图4 在此处输入图像描述

Update-1
基于-stackoverflow.com/a/40775352/10530657
已完成
Update-Package -reinstall
关闭,打开Visual Studio在Visual Studio 2015
中打开。

没有结果。

Update-2
安装了“AngleSharp - 0.9.11”。
错误消失了。


已安装Update-3 -System.Text.Encoding.CodePages
图 5
在此处输入图像描述

Update-4
采集控制台项目,项目报错。
也许有人会有机会在他们身边检查。
或者给我一个可行的项目。
也许这将有助于确定错误的原因。

该项目是在文档“AngleSharp”-文档的基础上制作的。链接
到项目 -链接

问题
如何使错误不出现在“AngleSharp - 0.10.01”中?

0 投票
1 回答
266 浏览

moq - How to mock AngleSharp's HttpRequester to provide static content in unit tests?

I am working on an application that includes a web scraper for gathering data and would like to verify that a particular service (which in the future will grow to several services) is performing the correct business logic given an expected HTML DOM tree is returned to it.

Rather than performing actual HTTP requests each time a test is run, I would prefer to "mock" this out by providing a static document for the test and returning a pre-defined HTML document. I'd prefer instead for my unit test to reflect "Given this HTML document, verify the output is correct business wise" which does not need to include AngleSharp's HTTP request.

Here's how I load the document now, which I have placed into a "wrapper" service that I can then inject into my service through dependency injection:

I see that there is a LoaderOptions object that can be passed to WithDefaultLoader, but it does not seem to provide a way to mock the HTTP request. There does seem to possibly be a way to do this with the With method on the default configuration object, however I am struggling to see how to sanely do this.

Other suggestions for alternate approaches are welcome, as well - due to my inexperience I may be attempting to skin a cat that needn't be skinned at all.

0 投票
1 回答
767 浏览

c# - Anglesharp 在 DoClick() 之后获取节点文本

我有一个 HTML 代码:

我正在使用以下代码获取 div:

然后我使用 DoClick() 单击节点:

div 的 HTML 代码应更改为:

但是nodeToClick.TextContent返回的值与以前相同nodeToClick.DoClick()

我试图做的事情:

  • Thread.Sleep(2000)在记录“nodeToClick.TextContent”之前插入延迟
  • 延迟 2 秒后重写 nodeToClick 而不更新页面
  • 使用这段代码重新加载页面的 HTML:

    /li>

这些都不适合我

如何获取我单击的元素的新 TextContent?

0 投票
1 回答
713 浏览

asp.net - AngleSharp - 如何浏览链接触发表单提交的网站

我正在尝试从本网站的多个搜索结果页面中抓取“阅读更多”链接:https ://www.cgg.com/en/31

没有指向搜索结果的任何特定页面的规范链接。当您导航到第 2 页时,URL 仍然是https://www.cgg.com/en/31

在检查底层 HTML 和 JavaScript 后,我​​看到分页链接在单击时会触发 JavaScript 函数。

这是被调用的函数:

因此,通过单击“NEXT”,浏览器将被重定向到相同的 URL,但内容不同。

单击“下一步”按钮后,我想从下一页抓取“阅读更多”链接。由于单击“下一步”按钮实际上会提交表单并重新加载页面,我将如何使用 AngleSharp 执行此操作?

这是我到目前为止所拥有的:https ://dotnetfiddle.net/3f6XZC

0 投票
1 回答
194 浏览

xamarin - 从 html 中获取单个元素。AngleSharp + htmlParsing xamarin

你好对不起我的英语不好!

我想通过输入 id 页面获取书名、作者姓名、书描述和 ISBN 代码 -示例页面

我可以取书名,因为它是单一元素:

但我对作者姓名有疑问

在此处输入图像描述

  1. 请帮助我获取书籍作者并通过字符串类型获取它。
  2. 可以通过一种方法获取标题,描述,作者姓名吗?

像 book.title = value、book.description = value、author-name = value 这样的 get-set

感谢您花时间阅读。

0 投票
1 回答
604 浏览

c# - 在 AngleSharp 中,如何使用字符串创建 DOM 元素?

有没有办法在 AngleSharp 中使用字符串创建 DOM 元素?例如:

0 投票
2 回答
1697 浏览

c# - 在.Net 4.7.2中导入AngleSharp时绑定重定向以某种方式尝试将NetStandard 2作为dll引入

我有一个旧版应用程序在旧的 Windows 2008 R2 服务器上运行。该应用程序经历了许多 .Net 版本,目前在 4.7.2 上。多年来,它一直如磐石般稳定,虽然有迁移计划从旧的物理服务器移出,但它必须再存活一段时间。

一项新功能认为需要进行一些 HTML 抓取。我为 AngleSharp v0.12.0 添加了 NuGet 包,经过单元测试,在我的 Win10 开发机器上一切正常。使用 AngleSharp 的新类很简单。

所以我部署到 prod 服务器,包括对 app.config 的更改;

这些是我可以从旧版本中识别的唯一更改。

当我在生产中运行该应用程序时,它崩溃了。

在网上做了一些搜索后,我看到有人指出了一个类似的问题(但是.Net Core,但仍然相似),他们指出尝试调用Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);可能会有所作为。参考: https ://github.com/DiscUtils/DiscUtils/issues/77

它不适合我,但现在我收到了更多时髦的信息:

netstandard是如何进入这个领域的?我不知道。由于 Splats 异常日志记录,我还在绑定日志中看到了这一点:

我的项目中没有(对我而言)对 Netstandard 的引用,所有项目都是 .Net Framework 4.5、4.6.x 或 4.7.x 项目。

我还遇到了这个似乎可能相关的问题: https://github.com/dotnet/announcements/issues/31

我尝试将我的项目转换为 PackageReference 项目,但这也没有改变任何东西。

为了完整起见,这是我最初尝试使用 AngleSharp 的绑定日志。

我敢肯定,我在这里缺少一些简单的重定向魔术。是否可以说服我的项目为 Net Framework v4.7.2 加载它并正常工作?

感谢您的任何建议!

5 月14 日编辑:对我来说,最困惑的一点是所涉及的所有不同版本号。

AngleSharp 0.12.0 NuGet 包依赖于 System.Text.Encoding.CodePages >= 4.5.0。

因此,即使存在 v4.5.1,它也会自动安装 v4.5.0,因为依赖行为最低。

如果我右键单击放入 bin\Debug 文件夹的实际 DLL,选择属性,然后选择版本,它会报告文件和产品版本 4.6.26515。

但在我的 app.config 中,我得到的绑定重定向指的是 4.1.1.0。

(我尝试用 4.6.26515.0 替换 4.1.1.0 的两个实例只是为了好玩,但这并没有改变)

然后,如上所述,日志声称:

所以这里显然有一些版本不匹配,但坦率地说,我不知道这些版本号中哪个是重要的。

这似乎表明它对次要版本不满意,但是……哪一个?

AngleSharp 似乎要求的 4.0.2.0?app.config 所指的4.1.1.0?4.6.26515.0 是 dll 实际声称的版本?

0 投票
1 回答
549 浏览

c# - Anglesharp 规范化/修复 html

我有这段 html

正如你所看到的,有Outside paragraph一段文字在段落之外,不是想要的情况。

是否有任何 AngleSharp 方法(如果不是 Anglesharp,那么任何其他方法)可以让我规范化/修复这段 html,使其看起来像:

所以,一段代码将放在Outside paragraph段落中

0 投票
1 回答
2665 浏览

c# - 使用 AngleSharp 解析表 (HTML) 中的数据?

需要解析站点播放音乐并从播放列表中获取歌曲数据

有这个表(ru版本):

在这里,例如 - 歌曲的名称

如何获取数据,例如歌曲名称、艺术家等?

0 投票
1 回答
335 浏览

c# - 如何在 AngleSharp 项目对象中获取链接的标题?

这是一个链接:

在 AngleSharp 对象中,我可以content使用以下代码轻松获得:

但我需要得到链接的标题和href。我怎么做?