【问题标题】:Javascript : get HTML of remote web pageJavascript:获取远程网页的 HTML
【发布时间】:2014-10-06 02:06:31
【问题描述】:

我想创建一个脚本,从网站上的多个页面检索 HTML 并解析该 DOM 内容以提取我想要的数据。

我想用 JavaScript 做这件事的原因是我想使用 JQuery 的 sizzle 引擎来轻松解析 DOM 以检索信息。

但是对于大多数浏览器的跨域策略,我还没有找到解决方案。我偶然发现了 JSONP,但由于该网站没有明确支持它,所以我不能使用这种方法。

我也考虑过使用 IFRAMES,但 Jquery 似乎也无法检索内容...

所以我的问题真的归结为:有没有办法使用 javascript/ajax/jquery 获取远程网页的 DOM?是否有允许这样做的库?

【问题讨论】:

  • 您首先需要使用 PHP 之类的工具来获取源代码。
  • 我强烈推荐一个简单的用户脚本;油脂猴或篡改猴。 php 会让你走得更远,但与 jQuery 相比,它是 DOM 打击(它和 HTML 一样糟糕),并且它不能处理动态数据或模板。所以那时你必须开始学习诸如基于 node.js 的假浏览器之类的东西,而从用户脚本中提取几行普通浏览器 js 就可以在几行代码中完成你想要的一切。
  • @MrHunter 我猜是这样,我可以将每个页面的所有内容放在一个隐藏的 DIV 中,然后使用 JQUERY 在客户端使用 javascript 解析它们中的每一个。但是我仍然想知道是否有任何方法可以仅使用 JS/JQuery 来完成这项工作
  • @dandavis 是的,这就是为什么我想在客户端进行解析,因为 JQUERY 的选择器/解析器引擎非常强大,但我不在乎 PHP 是否是获取内容的人第一名(尽管我想知道是否有使用 JS 的方法!)。
  • @domonicbri7:好吧,只需使用我提到的“猴子”扩展之一,就可以无缝地避开正常的起源限制。简而言之,您可以使用您的正常登录凭据在他们的网站上运行您的代码,并且由于它在他们的网站上,因此它与脚本的来源相同并且您是黄金。如果没有浏览器扩展,您还可以使用 YQL 作为服务器从其他站点获取 html 到您控制的域。您还可以将书签用作一次性用户脚本。

标签: javascript jquery ajax dom cross-domain


【解决方案1】:

除非他们允许,否则无法通过客户端脚本从跨域读取数据。

您应该寻找一种解决方案来读取服务器端的数据,然后您可以根据需要在客户端使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多