javascript - 如何从另一个网站获取特定的div内容

标签 javascript jquery html xmlhttprequest

我想将网站表格内容从他们的网站获取到我的网站。我通过以下函数获取 innerHTML:

function httpGet(theUrl)
{
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            createDiv(xmlhttp.responseText);
        }
    }
    xmlhttp.open("GET", theUrl, false );
    xmlhttp.send();    
}


document.write(httpGet("https://cors.io/?http://crystalmathlabs.com/tracker-rs3/currenttop.php"));

function createDiv(responsetext)
{
    var _body = document.getElementsByTagName('body')[0];
    var _div = document.createElement('div');
    _div.innerHTML = responsetext;
    _body.appendChild(_div);
}

所以这基本上复制了网站页面,没有所有样式和图像之类的东西,这很好,但我想将其减少到仅使用特定类名的表格。我正在考虑几种方法来做到这一点......

  1. 对 URL 进行一些操作以阻止除我想要的表之外的所有元素,我什至不确定这是否可行。

  2. 过滤掉响应文本中的所有内容。它返回一个字符串,所以我想我需要一些主要的字符串操作来做到这一点。

  3. 创建一个临时 div,这样我就可以通过 jQuery 和 JS 操作所有内容,这有点老套,但我认为它会起作用。

最好的方法是什么?或者也许是我还没有提到的想法。

最佳答案

不确定您的用例是否可以容纳服务器端代码,但可以解决此场景的一个非常好的 Node 包是 x-ray。

通过在服务器端执行此操作,您可以避免 CORS 问题,并且通过使用 Node 作为服务器,您仍然可以用 JS 编写所有内容。

x-ray 还为您提供了一个非常好的选项,如 jquery 来指向您想要从响应 HTML 中捕获的确切 html 节点。

查看此处了解详细信息:x-ray

关于javascript - 如何从另一个网站获取特定的div内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50203991/

相关文章:

javascript - 使用套接字服务器绘制其他玩家的 Canvas 的奇怪行为

html - 为什么我的菜单项位于实际菜单栏 (CSS) 下方?

javascript - 可以在与 IFrame 相同的页面中列出 html 源代码吗?

javascript - 将悬停背景拉伸(stretch)到全高

javascript - 如何允许文本区域的双向编辑和实时预览

javascript - jQuery何时输出promise对象而不是结果

html - ionic 2/3 列表项 : item inside item

javascript - Window.onload 和排序

javascript - jQuery : why is document. 就绪函数无法正常工作

javascript - HTML5 视频 - 更改多个源