$()。html()正文标记在函数调用后丢失

时间:2018-08-05 16:51:24

标签: javascript html ajax dom web-scraping

我正在抓取网站的源代码。

我的第一张照片打印出了完整的源代码。

然后,第二张打印品将实际的DOM打印到控制台,但是由于某种原因,文档的内容会稍有变化。

令我烦恼的是<body>标签丢失了,我也不知道为什么。

我刚刚意识到<head>标签也丢失了。因此,可能有充分的理由。

要澄清:<head><body>标签的内容一起保留在容器中。只是标签本身消失,而不是它们的内容。

我希望将整个源代码解析为可访问的DOM。

这是代码:

$.ajax({url: url, dataType: "text", success: function(data) { 

    console.log("data:", data);

    var htmlDocument = $("<html>").html(data)[0];

    console.log("htmlDocument:", htmlDocument);

}});

我是JavaScript新手,感谢您的帮助。我很想了解这个问题,但现在我真的只希望它能正常工作。

1 个答案:

答案 0 :(得分:1)

如Charlietfl所说

  

请注意,jQuery .html()删除了bodyhead

尝试

 $('html')[0].outerHTML

document.documentElement.outerHTML

在此处查看更多信息: How do I get the entire page's HTML with jQuery?