问题标签 [csquery]
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.
asp.net - ASP.NET - 在传输之前解析/查询 HTML 并插入 CSS 类引用
作为一名 Web 开发人员,我觉得我的太多时间都花在了 CSS 上。我正在尝试提出一个解决方案,我可以编写可重用的 CSS即类并在 HTML 中引用这些类,而无需在 ASPX 或 ASCX 文件等或代码隐藏文件中添加额外代码。我想要一个将 HTML 元素与 CSS 类链接起来的中介。
我想要达到的目标:
- 在传输前立即修改 HTML
- 选择 HTML 中的元素
- 基于其他地方定义的规则(例如在与当前正在处理的页面相关的文本文件中):
- 向多个 HTML 元素添加 CSS 类引用
- 将多个 CSS 类引用添加到单个 HTML 元素
我如何设想这个工作:
- 扩展生成最终 HTML 的 ASP.NET 函数
- 将所有 HTML 作为字符串抓取
- 将字符串传递给具有查询(例如 XPATH)方法的对象的构造函数
- 浏览全局规则列表,例如
ul
先的孩子,div
然后class = "navigation"
- 浏览页面特定规则的列表,例如对于
ul
第一个div
然后的孩子class &= " home"
- 从对象获取已处理的 HTML,例如 obj.ToString
- ASP.NET 使用已处理的 HTML 恢复页面生成
所以我需要知道的是:
- 在哪里/如何扩展 ASP.NET 页面生成功能(获取页面的所有 HTML)
- 哪些类有元素/节点查询方法和属性访问
提前感谢您的帮助。
PS 我正在开发 ASP.NET Web 表单网站,其中包含在 ISS 7 上运行的 VB.net 代码隐藏
html - ASP.NET - 使用 HAP(HTML 敏捷包)在渲染期间添加类引用
是否可以使用 HAP(HTML 敏捷包)来:
- 获取节点集合,例如
<a>
作为元素子级的所有<li>
元素 - 遍历集合
- 将 CSS 类引用添加到每个元素的类属性中,例如
class &= "foo"
- 更新 HTML 中原始位置的节点
对于第 4 点,我需要知道是否:
- 当我抓取一组节点时,我是否在使用副本?
- 如果是这样,我可以轻松地更新 HTML 中原始位置的节点吗
最后,在 ASP.NET 网站中呈现页面时这样做是否可行,考虑到:
- 我将需要修改不超过 100 个元素的类引用
- 我没有处理大型 HTML 文档
- 我计划从一个 div 开始选择我的节点,例如
div[2]
body 包含 4divs
我意识到这可能看起来像是一堆单独的问题,但实际上它只是以下两个问题的细分:
- 我可以轻松地修改 ASP.NET 页面的 HTML 输出,例如插入类引用吗?
- 在 50 - 100 个元素的 WRT 速度上执行此操作是否可行,例如不超过 2 秒的成本?
非常感谢。
c# - 在 Each 块内进行更改持久化
我一直在尝试奇妙的CsQuery库,它基本上是 jQuery 的 .NET 端口,允许使用 os CSS 选择器和 jQuery 的大部分功能。
我正在使用它来解析和编辑一批 HTML 文件(特别是编辑不同 DOM 元素的一些属性)。
下面的 C# 片段显示了我正在做的事情,注释中包含 JavaScript/jQuery 等效代码。
这非常有效:如果我检查输出文件,所有图像的src
值现在都是#
.
无论如何,如果我使用该Each
块(这似乎可以很好地使用C# lambda 表达式来模拟 javascript 的函数传递),则更改将不适用于输出文件:
尽管 Messabox 为我的 DOM 中的每个图像都显示了“#”(这意味着cqElement
得到了更改),但输出文件没有得到更改。
我认为导致问题的关键在于CQ cqElement = CQ.Create(element);
它创建了一个全新的 CsQuery 对象。事实上,如果在第一个 Messagebox 之后我弹出另一个像下面这样的,它不会对cqElement
关于如何解决这个问题的任何想法?
c# - 延迟一段时间后检索网页数据(网页抓取)
目标是在完成 Ajax 调用后从网站检索数据。当前,页面首次加载时正在检索数据。但是所需的数据是在 ajax 调用后加载的 div 中找到的。
总结一下,场景如下:
使用 C# 代码中传递的一些参数调用网页(当前使用 CsQuery for c#)。发送请求时,页面打开并显示“正在加载”图片,几秒钟后检索到所需的数据。然而,cSQuery 代码使用“正在加载”图片检索第一个页面内容..
代码如下
html - 使用 html 子字符串加速 CsQuery 选择器
我想解析一些复杂/繁重的 HTML 页面。我最近阅读了 CsQuery 并检查了CsQuery Vs Html Agility Pack 和 Fizzler的性能比较。根据这些测试,由于创建了索引,CsQuery 在创建 DOM 时变得更慢。
假设我想选择一个沉重的 html 页面的某个元素(没有 id),并且我知道它的祖先的 ID,我将使用它作为上下文元素。如果我将这个沉重的 html 加载到 DOM 中,它会很慢,因此我的选择会很慢。但是,如果我能以某种方式快速预处理 html 并获取包含上下文元素(我知道的 ID)的子字符串并将其加载到 DOM 中,它会更快。在那种情况下,我会摆脱许多不需要的 HTML,不会为其创建索引器。因此,我的选择会更快。
我使用 CsQuery 是因为我想要类似 JQuery 的东西。
我的问题是:
给定一个 HTML 文档字符串:是否有一种快速方法(例如:线性)来获取给定其 id 的 HTML 元素的 HTML 子字符串?
c# - CsQuery 还是 Jint?C# 中的 Javascript 数据操作
我正在编写一个用于统计目的的网络爬虫。该网站通过javascript动态更新。我设法解析 HTML 文件并将所有脚本值复制到一个数组中。我如何在本地或即时重新执行这些脚本以获得返回值?CsQuery、Jint 还是其他方法?
c# - CsQuery to parse a collection of li items
Here's my code:
Inside the foreach loop li
turns into a IDomObject
variable and I can no longer drill down further into it.
Any suggestions? Here is the example HTML I'm trying to parse:
I need to grab the text of each h2 element.
jquery - 在 jQuery 中发出 parent()
想象一些 HTML 代码:
和
我认为它必须在 div.first 中返回一个,对吗?
因为当我在 CsQuery 中执行此逻辑时,它会在 div.first 和 div.second 中返回 a。
c# - 如何使用 CsQuery 从 HTML 中获取 javascript 变量值
如何使用 CsQuery 从 DOM 获取 javascript 变量值?
asp.net - Using CsQuery in MasterPage code-behind to modify HTML output?
What's the "skeleton" code for using CsQuery in the code-behind of a MasterPage in order to modify the HTML output? I need to be able to modify everything in the <body>
of the HTML?
I'm hoping to use CsQuery to "touch-up" the HTML output of a Dynamic Data website without rewriting / messing with the default code.
Just looking for sample code specific to MasterPage code-behind? Thanks.