【问题标题】:Simple JS Full Page Web Scraping [closed]简单的 JS 整页网页抓取 [关闭]
【发布时间】:2015-06-26 02:20:48
【问题描述】:

我正在编写一个简单的单页网络应用程序。该应用程序需要将另一个站点的整页 html 文本加载到一个字符串中。我有另一个网站的网址。如何将此外部页面的整页文本拉入javascript中的字符串?

【问题讨论】:

    标签: javascript web-scraping


    【解决方案1】:

    实际上,可以通过 javascript 来实现。 如果另一个站点启用了 CORS,您可以使用 ajax 获取远程 url 内容。

    如果没有启用 CORS,您可以使用自己的服务器来获取远程 url 内容。因此,您可以向您的服务器发送 ajax 请求,您的服务器将获取远程内容并将其作为对您的 ajax 的响应。

    另外,你可以在你的服务器上使用 JSONP,或者如果你没有你的服务器,你可以找到为你提供这种功能的在线服务。

    在这里,我创建了一个通过免费在线服务和 JSONP 获取远程 url 的示例:http://jsfiddle.net/pisamce/2t1gz24x/

    var res = document.getElementById('res'),
        url = document.getElementById('url')
        myVar = '';
    window.show = function (jsonp) {
        myVar = jsonp[0].body; //assign response to your variable
        res.innerText = myVar;
    }
    document.getElementById('btn').addEventListener('click', function () {
        var s = document.createElement('script');
        s.src = 'http://jsonpwrapper.com/?urls%5B%5D=' + encodeURIComponent(url.value) + '&callback=show';
        document.getElementsByTagName('head')[0].appendChild(s);
    });
    <input id="url" type="text" value="http://example.com" />
    <input id="btn" type="button" value="Get page html" />
    <pre id="res"></pre>

    【讨论】:

      【解决方案2】:

      不,您不能在 javascript 中执行此操作。由于CORS,浏览器不允许您调用此类调用。

      您可以改为在服务器端执行此操作。点击那里的服务器提取数据并响应您的网站。

      【讨论】:

      • 我已经包含了解释。有帮助吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2019-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多