我将整个HTML页面附加到div
(刮除)。如何阻止它请求script
和css
个文件?我尝试立即删除这些节点,但仍然会收到请求
这是一个浏览器插件,我用JS抓取
答案 0 :(得分:0)
正如@adeneo所写,你不必将html添加到页面中以便从中抓取信息,你可以将它变成与页面DOM断开连接并在那里处理它的DOM树。
在jQuery中,它很简单$("html text here")
。然后你可以使用API来抓取它,
例如
function scrape_html(html_string) {
var $dom = $(html_string);
var name = $dom.find('.name').text();
return name;
}
没有jQuery:
function scrape_html(html_string) {
var container = document.createElement('div');
container.innerHTML = html_string;
var name = container.getElementsByClassName('name')[0].innerText;
return name;
}
答案 1 :(得分:0)
设置尚未添加到文档的临时HTML元素的innerHTML将不会执行脚本,并且由于它不属于您的文档,因此也不会应用该样式。
这会让您有机会在将innerHTML复制到您自己的文档之前删除任何不需要的元素。
示例:
var temp = document.createElement('div');
temp.innerHTML = html; // the HTML of the 'other' page.
function removeElements(element, tagName)
{
var elements = temp.getElementsByTagName(tagName);
while(elements.length > 0)
{
elements[0].parentNode.removeChild(elements[0]);
}
}
removeElements(temp, 'script');
removeElements(temp, 'style');
removeElements(temp, 'link');
container.innerHTML = temp.innerHTML;