首页 新闻 会员 周边 捐助

.net下如何抓取用Ajax加载的HTML

0
悬赏园豆:60 [已解决问题] 解决于 2013-08-31 22:42

现在的网站很多都是用Ajax来显示的,用传统的方法,即Webclient,httpWebRequest等无法抓取到HTML源码,各位大大们有没有什么好办法。要在webForm下的。。

YYLin的主页 YYLin | 初学一级 | 园豆:105
提问于:2013-08-15 17:08
< >
分享
最佳答案
0

试试 NHtmlUnit -  java and converted to .net

或者PhantomJS

收获园豆:50
gunsmoke | 老鸟四级 |园豆:3592 | 2013-08-30 13:21

我找了一下网上的资料,PhantomJS这个还可以截图,可以Post数据,当然可以抓取,dos窗口可以不显示,感觉比较满意。

YYLin | 园豆:105 (初学一级) | 2013-08-31 22:40

博客园的:http://www.cnblogs.com/YYLin/p/3293963.html

CSDN的:http://blog.csdn.net/jeanny292163/article/details/10810197

都对这个主题作了一点记录以备忘。

YYLin | 园豆:105 (初学一级) | 2013-08-31 23:59
其他回答(3)
0

fiddler可以监控到请求,拿到请求后在用httpWebRequest就能获取到html原码了

小兵仔 | 园豆:1240 (小虾三级) | 2013-08-15 17:12

能否详细一点呢?fiddler只是监控到请求到哪个页面,POST什么参数,即使这样还是无法获取,拿到的HTML还是未用Ajax加载前的代码。

支持(0) 反对(0) YYLin | 园豆:105 (初学一级) | 2013-08-15 17:18

@YYLin: 哦,明白你的意思了,你是说要拿到 数据到达客户端后js画的页面的HTML代码吧。这个拿不到吧。况且拿着个代码也没什么意义啊,有了数据你想画成什么样就画成什么样啊

支持(0) 反对(0) 小兵仔 | 园豆:1240 (小虾三级) | 2013-08-15 17:33

@小兵仔: 唉,,惨就惨在它的数据就是用Ajax技术返回来的。如http://data.shishicai.cn/cqssc/haoma/这个页面中的号码。

支持(0) 反对(0) YYLin | 园豆:105 (初学一级) | 2013-08-15 18:45
0

找出页面中ajax请求的url,然后通过WebClient向这些url发请求获取内容

收获园豆:10
dudu | 园豆:29568 (高人七级) | 2013-08-15 17:38

我用抓包工具看到了地址,是一个ashx的处理程序,但是POST过去还是不行。

抓包工具分析http://data.shishicai.cn/cqssc/haoma/这个地址

它是POST去http://data.shishicai.cn/handler/kuaikai/data.ashx这个地址,得到

["20130815-076;39960;2013-08-15 18:40","20130815-075;04260;2013-08-15 18:30","20130815-074;71904;2013-08-15 18:20","20130815-073;73927;……这样的返回值

支持(0) 反对(0) YYLin | 园豆:105 (初学一级) | 2013-08-15 18:48

@YYLin: 需要有js引擎,你才能抓取到ajax返回后js处理后的内容

支持(0) 反对(0) dudu | 园豆:29568 (高人七级) | 2013-08-15 21:37

@YYLin: 首页正好有一篇相关博文:浅谈网络爬虫爬js动态加载网页(一)

支持(0) 反对(0) dudu | 园豆:29568 (高人七级) | 2013-08-16 08:35

@dudu: 看了这个博文,我试着用了Selenium这个加个除了htmlunit之外的webDriver都会有一个显性的浏览器,不是很好。不过很谢谢你。。。学习到了很多东西。

支持(0) 反对(0) YYLin | 园豆:105 (初学一级) | 2013-08-31 22:37
0

楼主搞好了没?我现在也在弄这个,想讨点经验……

lingshanran | 园豆:204 (菜鸟二级) | 2015-11-04 21:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册