【问题标题】:Fetch html from iframe从 iframe 中获取 html
【发布时间】:2012-02-19 00:33:18
【问题描述】:

我正在制作一个应用,我想在其中从 iframe 获取一些内容, 在 iFrame 中的代码是这样的。

<div class="abc">

<a class="abc" href="example.com" data-ctorig="example2.com" > **** </a>

</div>

我想要我的应用程序的网站“example2.com”。 我使用 ASP.NET(C#)、HtmlAgilityPack.... 如何做到这一点?

我转到 iframe 的“src”链接。但我又什么也没找到。我给你链接click here。 打开这个页面,我想解析给定的链接。 1.如何在没有指南针的情况下找到真北: 2. 如何在没有指南针的情况下找到真北。

【问题讨论】:

    标签: c# html iframe html-agility-pack


    【解决方案1】:

    将 HtmlAgilityPack 指向 IFrame URL,而不是托管页面。

    澄清...

    如果我理解正确,您可以使用 WebClient 和 HtmlAgilityPack 获取 IFrame 的 HTML。

    首先,您需要使用 WebClient 来获取主机页面的 HTML。然后,您需要使用 HtmlAgilityPack 解析主机页面 HTML 并提取 IFrame URL。接下来,您将要使用另一个 WebClient 从 IFrame URL 获取 HTML,然后再次使用 HtmlAgilityPack 解析响应,这应该会为您提供所需的内容。

    当然,你的问题很模糊,所以我不完全确定这就是你所追求的。无论哪种方式,以下链接都会对您有所帮助。

    HtmlAgilityPack Tutorial

    Download HTML Using WebClient

    【讨论】:

    • 使用 WebRequest 从主机页面获取 HTML,然后使用 HtmlAgilityPack 对其进行解析。使用 HtmlAgility 包从 HTML 中提取 iFrame。使用获取的 IFrame 的 src 属性执行另一个 Web 请求,并使用 HtmlAgilityPack 解析响应。
    • 嗨! @Matthew,你能举个例子吗?我尝试使用 HtmlAgilityPack 从 HTML 中提取 iframe。但我失败了,请举个例子。
    • 除了实际为您编写代码之外,我将从查看这里开始:stackoverflow.com/questions/2422762/html-agility-pack。您将需要熟悉如何获取 HTML 块,使用 HtmlAgilityPack 对其进行解析,并使用 HtmlAgilityPack API 提取您想要的信息。既然已经提供了高级解决方案,那么 SO 和 Google 应该足以帮助您实现目标。
    • 嘿! @ctorx,我只使用 HtmlAgilityPack(HAP),我使用 HAP 从主机页面获取 html,但是当我转到主机页面的源代码时,没有 iframe。所以,我做什么。
    • 主机页面可能正在使用 JavaScript 将 iframe 注入 DOM,在这种情况下,HtmlAgilityPack 不会为您提供帮助。如果是这种情况,您将需要能够解析 JavaScript 并维护可以查询的 DOM 的东西。
    【解决方案2】:

    假设您正在谈论从在客户端浏览器中提供和呈现的页面执行此操作,您需要在 JavaScript 而不是 C# 中执行此操作。 iframe 在客户端浏览器上呈现,因此您的服务器端代码将无法访问它。

    【讨论】:

    • 也许他们在抓取屏幕?
    • 即使他们是屏幕抓取,至少也需要一些 JavaScript 来抓取 iframe 内容并将其发布回服务器。但他的问题是如何获取内容,而不是如何解析它。他无法使用 C# 获得它。
    • 也许他们是客户;他们需要解析第三方页面的内容。
    • 他们是谁并不重要,如果这发生在浏览器内部(正如他的评论所证明的那样,他的应用程序是“example2.com”),它仍然必须在 javascript 中完成,而不是 C#。服务器端的 asp.net 代码不知道将哪些内容(如果有)加载到 iframe 中。这完全是浏览器的功能。
    • 我认为他们说“example2.com”是他们想要从页面标记中提取的字符串。我假设他们在 C# 客户端应用程序中使用 WebClient 从第三方站点下载页面,并且需要解析下载的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多