js获取网页源代码

JavaScript023

js获取网页源代码,第1张

          let sourceCodeTxt = ''

          var xhr = new XMLHttpRequest()

          xhr.open('GET', window.location.href, false)

          xhr.send()

          sourceCodeTxt= xhr.responseText

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-type" content="text/htmlcharset=utf-8">

<title>远程网页源代码读取</title>

<style type="text/css">

/* 页面字体样式 */

body, td, input, textarea {

font-family:Arial

font-size:12px

}

</style>

<script type="text/javascript">

//用于创建XMLHttpRequest对象

function createXmlHttp() {

//根据window.XMLHttpRequest对象是否存在使用不同的创建方式

if (window.XMLHttpRequest) {

xmlHttp = new XMLHttpRequest()//FireFox、Opera等浏览器支持的创建方式

} else {

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")//IE浏览器支持的创建方式

}

}

//直接通过XMLHttpRequest对象获取远程网页源代码

function getSource() {

var url = document.getElementById("url").value//获取目标地址信息

//地址为空时提示用户输入

if (url == "") {

alert("请输入网页地址 。")

return

}

document.getElementById("source").value = "正在加载……"//提示正在加载

createXmlHttp()//创建XMLHttpRequest对象

xmlHttp.onreadystatechange = writeSource//设置回调函数

xmlHttp.open("GET", url, true)

xmlHttp.send(null)

}

//将远程网页源代码写入页面文字区域

function writeSource() {

if (xmlHttp.readyState == 4) {

document.getElementById("source").value = xmlHttp.responseText

}

}

</script>

</head>

<body>

<h1>远程网页源代码读取</h1>

<div>

地址:<input type="text" id="url">

<input type="button" onclick="getSource()" value="获取源码">

</div>

<textarea rows="10" cols="80" id="source"></textarea>

</body>

</html>

需要获取网页中的javascript执行后生成的完整的网页源码(通常使用的右键-查看源代码是看不到js执行后的内容的,用firefox的firebug看到的代码就是js执行后的代码),从中提取一些有用的数据。