如何抓取到Asp.Net中-doPostBack获取新页面的数据
2008-05-01 04:15
706 查看
在Web 2.0时代,很多网站采用AJAX技术实现,带来较好用户体验的代价是,javascript得到的内容搜索引擎无法爬到,Google也正在研究此种技术。本文讨论Asp.Net程序生成的链接,爬虫如何能爬进去的问题。
问题:某网站出现的数据列表分页显示,而上一页和下一页都是用__doPostBack提交到后台处理,如javascript:__doPostBack('ucInfoListMore$gridInfoList$_ctl21$_ctl1',''),我们根本得不到他绝对链接的地址,而且每一页得下一页传入的参数是一样的。
分析:我们首先理解__doPostBack做了哪些事情。
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("Netscape") > -1) {
theform = document.forms["Form1"];//注意此处的FormID
} else {
theform = document.Form1;//还有此处
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
明白了吧,问题就在.__EVENTTARGET(后台处理的事件)和__EVENTARGUMENT上。这样就简单了,我们可以给这两个参数赋值,然后向后台发送Post就可以了。那么如何指定某一页呢,Asp.Net在后台是以Session方式保存当前页信息的,我们在Post得时候能够保证实在同一个会话中进行的就可以了。
问题:某网站出现的数据列表分页显示,而上一页和下一页都是用__doPostBack提交到后台处理,如javascript:__doPostBack('ucInfoListMore$gridInfoList$_ctl21$_ctl1',''),我们根本得不到他绝对链接的地址,而且每一页得下一页传入的参数是一样的。
分析:我们首先理解__doPostBack做了哪些事情。
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("Netscape") > -1) {
theform = document.forms["Form1"];//注意此处的FormID
} else {
theform = document.Form1;//还有此处
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
明白了吧,问题就在.__EVENTTARGET(后台处理的事件)和__EVENTARGUMENT上。这样就简单了,我们可以给这两个参数赋值,然后向后台发送Post就可以了。那么如何指定某一页呢,Asp.Net在后台是以Session方式保存当前页信息的,我们在Post得时候能够保证实在同一个会话中进行的就可以了。
相关文章推荐
- 爬虫如何抓取到Asp.Net中__doPostBack获取新页面的数据
- 爬虫如何抓取到Asp.Net中-doPostBack获取新页面的数据
- 爬虫如何抓取到asp.net中-dopostback获取新页面的数据
- Silverlight应用程序中如何获取ASP.NET页面参数
- asp.net中, 如何在后台获取访问这个页面的用户的名字?
- asp.net的服务器控件客户端空件的区别以及如何刷新页面不靠数据库数据停留在页面
- java jsoup 爬虫爬asp.net网站遇到_doPostBack不能获取翻页数据解决办法
- 技巧:Silverlight应用程序中如何获取ASP.NET页面参数
- ASP.NET WebForm中JavaScript修改了页面上Label的值,如何在后台代码中获取
- ASP.NET如何跨站抓取页面
- ASP.NET MVC 学习3、Controller左手从Model获取数据,右手传递到View页面
- 技巧:Silverlight应用程序中如何获取ASP.NET页面参数
- 技巧:Silverlight应用程序中如何获取ASP.NET页面参数
- ASP.NET如何获取系统时间和数据功能调用
- ASP.NET 跳转页面数据的获取 (使用html控件)
- ASP.Net 如何让后台的cs页面获取到前台的html控件的值
- asp.net如何将页面Table控件中的数据写到excel中总结
- asp.net中, 如何在后台获取访问这个页面的用户的名字?
- [ASP.NET]如何点击按钮弹出新窗口,输入数据后返回并刷新页面?(C#代码)
- asp.net页面中如何获取Excel表的内容