如何从单独的URL获取Document对象?

时间:2017-09-25 21:16:40

标签: javascript html url

我正在制作一个程序来解析来自数据库网站的几个页面的一堆信息,以用于JavaScript库。只是通过搞乱控制台,我已经弄清楚如何隔离我需要的信息,但我不知道如何从解析程序访问信息。我几乎完全精通HTML / JavaScript,所以我自然而然地坚持我所知道的应该是一个相对简单的解析器。以下是我打算做的基本想法:

for (var i = 0; i < 5; i++) {
    var outsideHTML = getDocumentByURL("https://www.example-database.com/page-"+i);

    //other code that parses information from the variable "outsideHTML"
}

我只需要一个函数作为getDocumentByURL()。提前谢谢。

1 个答案:

答案 0 :(得分:0)

由于名为same-origin policy的内容,您无法使用客户端JavaScript访问其他网页的文档或其他内容,除非其他网页与您的网页位于同一个域中,或者除非其他网站明确允许通过支持JSONPsetting Access-Control-Allow-Origin headers。听起来您正在尝试检索网页,因此JSONP并不相关,并且在网页上设置Access-Control-Allow-Origin标头的情况并不常见。因此,这可能无法以您所描述的方式实现。

要从其他网站检索数据,您可以采取以下几种方法:

  1. 运行检索其他网页并提取所需信息的服务器端代码(即PHP,Node.js,Java等)。服务器端代码不受浏览器安全策略的影响,例如同源策略。
  2. 使用跨源代理(例如crossorigin.me)。此代理将为您检索数据并添加允许您访问页面内容的Access-Control-Allow-Origin标头。
  3. 根据您尝试实现的目标,您可能会将您的想法从网页转换为浏览器扩展程序 - 浏览器扩展程序可以自由地忽略同源政策。
  4. 通过以更友好的格式提供数据,询问网站所有者是否愿意为您提供服务。
  5. 请注意,前两种方法都会导致请求来自服务器而不是来自客户端的计算机。这意味着您无法检索任何要求他们登录网站的信息。