Javascript 如何从其他网站获取特定的div内容
我想从他们的网站到我的网站获取网站表内容。我通过以下函数获取innerHTML:Javascript 如何从其他网站获取特定的div内容,javascript,jquery,html,xmlhttprequest,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=ne
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);
}
因此,这基本上复制了站点页面,没有所有的样式、图像和其他东西,这很好,但我想将其简化为使用特定类名的表。我在想一些方法来做到这一点
对URL做一些操作以屏蔽除我想要的表之外的所有元素,我甚至不确定这是否可行
过滤掉响应文本中的所有内容。它返回一个字符串,所以我想我需要一些主要的字符串操作来实现这一点
创建一个临时div,这样我就可以通过jQuery和JS操作一切,这是一种有点粗糙的方式,但我认为它会起作用
最好的方法是什么?或者是一个我还没有提到的想法。不确定您的用例是否可以容纳服务器端代码,但是一个非常好的节点包是x射线,它可以解决这个问题 通过在服务器端这样做,您可以避免CORS问题,并且通过使用节点作为服务器,您仍然可以用JS编写所有内容 x-ray还提供了一个非常好的选项,如jquery,用于指向要从响应html中捕获的确切html节点 查看此处了解详细信息:您可以使用DocumentFragment函数 将您收到的所有HTML添加到documentFragment,然后选择所需的HTML元素,就像从文档中选择一样,使用doDocument.querySelector为使用fragment.querySelector的片段选择所需的HTML元素 DocumentFragments允许开发人员将子元素放置到类似父节点的任意节点上,从而允许在没有真正根节点的情况下进行类似节点的交互。这样做允许开发人员在不在可见DOM中生成结构的情况下生成结构—速度的提高才是真正的优势 我将从收到的HTML开始,使用一个伪HTML并选择table.my-class并添加到自定义div中,您可以根据需要修改它 变量html=` HTML教程 这是一个标题 这是一段 公司 联系 国 阿尔弗雷德·福特基斯特 玛丽亚·安德斯 德国 莫特祖马商业中心 张锦松 墨西哥 恩斯特·汉德尔 罗兰·孟德尔 奥地利 岛屿贸易 海伦·贝内特 英国 笑巴克斯酒窖 田纳西 加拿大 马加兹尼营养不良 乔瓦尼·罗维利 意大利 `; $function{ 让fragment=document.createDocumentFragment; 设temp=document.createElement'div'; temp.innerHTML=html; fragment.appendChildtemp; var table=fragment.querySelector'table.my class'; document.querySelector'.preview'.appendtable; }
我不打算为此使用任何类型的服务器,尽管NodeJS将是我的首选。我通过第三方提交请求来避免CORS问题,我不介意这样做。你可以在我的网站的URL之前看到它example@RachelDockter,刚查过cors.io。这是一个非常好的工具,你正在使用。添加一个答案,看看它是否有帮助它并不理想,但我认为这是我能得到的最好的,谢谢,这让你觉得它不适合你的情况,你有一堆嵌套的HTML,你需要从中选择一些元素,您不能从收到的html中进行选择,因为它不会被视为html,而是文本,这是一种方法@拉谢尔多克特