asp.net能不能抓取其他网页的表格(多行多列)里的数据? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 说的太简单了。其它网页在什么地方?asp.net是服务器端的程序,如果你想在客户端(IE)访问某个页面并且解析页面元素,可以使用Webbrowser控件。 我是想用asp.net抓取其他网站网页里的表格里数据,然后进行计算、分析。 在后台创建一个WebBrowser对象,使用这个对象下载特定的网页,下载完后(DocumentCompleted事件)使用webBroswer.Document.GetElementByTagName("table")可以找到所有表格元素。MSDN一下WebBrowser控件,能找到很多你需要的功能。不过提醒一下,这个过程比较慢的,也就是说用户浏览你的网站到你返回上述分析的结果给用户,需要较长时间。如果要快点的话,最好是使用javascript在客户端处理,而非asp.net可以在你的asp.net页面上创建一个不可见的iframe元素,当页面加载到客户端Ie的时候,运行一段js脚本将你需要的页面加载到iframe中,然后在这个iframe中按照DOM解析页面并返回结果。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML> <HEAD> <title>xmlhttp获取网页内容</title> <script language="javascript">function getXML(URL) { var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.Open("GET",URL, false); try { xmlhttp.send(); var result = xmlhttp.status;} catch(e) {return(false);} if(result==200) { return(xmlhttp.responseText); } delete(xmlhttp) }function setData(){ try { document.getElementById("tbhome").innerText = getXML('http://www.163.com');//+'?para='+Math.random()); } catch(e) { alert('在获取数据时出错!'); }} </script> </HEAD> <body onload="setData();"> <br> <p><br> </p> <form id="frmHome" method="post"> <div align="center"> <textarea name="tbhome" rows="25" cols="80" id="tbhome"></textarea> </div> </form> </body></HTML> 可以直接拿到人家的页面html代码,然后里面正则出来分析不过这个只能拿当前页,如果人家有翻页这个应该就很难拿了 dropdownlist级联问题 求下列SQL语句的模糊查询 怎么做像CSDN左边的切换功能? *.aspx不是asp程序吗?用IIS还不能运行聂,需要搭建什么环境运行呢? 网页上实现一个在线录音的功能 初学者的菜问题,望指教,不胜感激! 这一部分的javascript的语句怎末写呀 从数据库中取值后,因显示不完,treeview出现右边的滚动条,如何更改属性让他不出现滚动条,这样才美观 asp.net(c#)窗口问题?(如题) .NET工程中如何批量添加现有项,包括文件夹??? 關於PDF文件是否打印的問題 一个菜鸟问题,如何让宽度为950个像素的asp.net页面在浏览器中打开时居中显示
不过提醒一下,这个过程比较慢的,也就是说用户浏览你的网站到你返回上述分析的结果给用户,需要较长时间。如果要快点的话,最好是使用javascript在客户端处理,而非asp.net
可以在你的asp.net页面上创建一个不可见的iframe元素,当页面加载到客户端Ie的时候,运行一段js脚本将你需要的页面加载到iframe中,然后在这个iframe中按照DOM解析页面并返回结果。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>xmlhttp获取网页内容</title>
<script language="javascript">
function getXML(URL)
{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open("GET",URL, false);
try {
xmlhttp.send();
var result = xmlhttp.status;}
catch(e) {return(false);}
if(result==200) {
return(xmlhttp.responseText);
}
delete(xmlhttp)
}
function setData()
{
try
{
document.getElementById("tbhome").innerText = getXML('http://www.163.com');//+'?para='+Math.random());
}
catch(e)
{
alert('在获取数据时出错!');
}
}
</script>
</HEAD>
<body onload="setData();">
<br>
<p><br>
</p>
<form id="frmHome" method="post">
<div align="center">
<textarea name="tbhome" rows="25" cols="80" id="tbhome"></textarea>
</div>
</form>
</body>
</HTML>
不过这个只能拿当前页,如果人家有翻页这个应该就很难拿了