【问题标题】:How can I get a web page into a string using JavaScript?如何使用 JavaScript 将网页转换为字符串?
【发布时间】:2012-10-23 11:52:13
【问题描述】:

我需要使用 JavaScript 获取页面的 html 内容,该页面也可能位于另一个域中,类似于 wget 的功能,但在 JavaScript 中。我想将它用于一种网络爬虫。

如果我有一个 URL,我如何使用 JavaScript 获取页面的内容并将其转换为字符串?

【问题讨论】:

  • XMLHttpRequest?除非您期望有人为您提供大量代码来实际执行此操作,否则您需要在问题中提供更多信息。你试过什么?你排除了什么?你为什么使用javascript?可能有更好的方法。
  • 这是用于客户端 JS(在浏览器中)还是用于服务器端 JS(如 node.js)?
  • @Sirko 用于浏览器
  • @Paystey 我也这么认为,但是在其他领域,请参阅下面关于我所考虑的问题的答案

标签: javascript url web-crawler


【解决方案1】:

试试这个:

function cbfunc(html) { alert(html.results[0]); }
$.getScript('http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22' + 
encodeURIComponent(url) + '%22&format=xml&diagnostics=true&callback=cbfunc');

DEMO

More about YQL

【讨论】:

    【解决方案2】:

    通过 JavaScript 通过 HTTP 加载内容的一般方法是到use the XMLHttpRequest object。这受same origin policy 的约束,因此要访问其他域上的内容,您必须circumvent it

    这假设您在 Web 浏览器中运行 JS(由 “该页面也可能在另一个域上” 暗示)。如果您不是,那么其他选择将向您开放。例如,对于 nodejs,您可以使用 the http client

    【讨论】:

      【解决方案3】:

      如果您还想捕获 hmtl 标签,您可以像这样将它们连接到 html:

       function getPageHTML() {
             return "<html>" + $("html").html() + "</html>";
          }
      

      How do I get the entire page's HTML with jQuery?

      【讨论】:

        猜你喜欢
        • 2017-03-31
        • 1970-01-01
        • 1970-01-01
        • 2020-09-20
        • 1970-01-01
        • 2018-12-17
        • 1970-01-01
        • 2020-08-18
        • 2021-02-06
        相关资源
        最近更新 更多