【问题标题】:a website preview - loading a webpage using javascript Or Server-side网站预览 - 使用 javascript 或服务器端加载网页
【发布时间】:2016-01-10 15:20:20
【问题描述】:

当用户发布链接时,我想在类似于 facebook 的链接上显示网站预览。我的问题已在以下link 中重复,但我将在我的解决方案中询问具体信息。我有两种显示网页预览的解决方案,如下所示:1。服务器端 html 进程 2. 客户端 html 进程。

1.服务器端 html 进程
我使用System.Net.WebClient().DownloadString(url)在服务器端检索网页数据,并尝试提取页面中最重要的信息,但在大多数情况下,页面的主要部分使用javascript加载,因此我无权访问信息。
服务器端 html 进程中的另一个解决方案是使用 webBrowser 和 WebDocument 对象。因为我没有使用这些库,而且我不知道应用这些对象对 Web 服务器性能的影响有多大,所以我只提出这个解决方案供讨论。因此,是否有任何服务器端 html 抓取器可以获取所有 html 数据,包括javascript 加载 html 源代码?

2.客户端 Html 进程
客户端最简单的方法是使用 iframe 标签,但它有以下两个问题:

  • 一个。我无法访问框架的 innerHTML 以获取其他域上的链接。

  • b.我无法在 iframe 中加载 https 网页,例如 drop-box 和 facebook 因为“x-frame options”错误。

我的问题是,是否有任何其他客户端解决方案可以从 3rd 方网页(通常是 https)检索动态 html 源(由 javascript 加载)?或者我可以通过一些技巧来解决上述问题。

【问题讨论】:

    标签: javascript c# jquery asp.net


    【解决方案1】:

    我猜服务器端方法是最可行的选择。在客户端,您可以使用允许解决跨域限制的代理服务,例如crossorigin

    要生成预览,类似于 Facebook 提供的预览,您需要获取目标页面的Open Graph 信息。处理可用于多个平台的开放图形数据的库。 OpenGraph-Net 可用于 .NET 平台。

    【讨论】:

    • 感谢您的回复。我会考虑您的回复,并将结果回复给您。
    • OpenGraph-Net 是我问题的最佳答案。再次感谢。
    猜你喜欢
    • 2016-03-23
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多