WebBrowser + HtmlPraser 抓取ajax网页的源代码
来源:互联网 发布:翻墙有哪些软件推荐 编辑:程序博客网 时间:2024/05/01 07:24
之前做项目要从一个网页中抓取某些特定信息 最初是打算直接用java+HtmlPraser做出来的 结果要抓取的那部分怎么都出不来 研究了一下那个网页的源代码之后 得出结论是那个网页是用ajax技术隐藏了部分信息 要有用户浏览该页面的时候才会把这部分信息显示出来 好了 然后我又想找一找有没有一些可以模拟浏览的开源项目 结果找不到. 万分无奈下 只好转战c#平台.
经高人指点 c#中WebBrowser这个控件就起到一个模拟浏览器的作用 而且使用非常简单.
新建一个窗体应用程序 往窗体添加一个WebBrowser控件 在该控件的属性url设置你要解析的网页url 必须填写
然后双击控件 你会转到一个
private void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)函数里面
查看函数解析就知道 这个函数在控件加载完网页之后才执行
也就是说你要对网页的信息获取要写在这个函数里面
一开始我也是把处理代码直接写在这个函数里面 但发觉信息是抓到 但只是很少一部分
后来一百度 发现是因为这个控件其实设计得有些缺点 很多时候含有动态加载的网页还没完全打开
web_DocumentCompleted()这个函数就会开始执行 导致控件显示的页面源代码与实际页面源代码不一致
解决方法是有的 虽然也不算完全解决 但能提高打开类似ajax网页的完成度
方法是
private void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (web0.ReadyState == WebBrowserReadyState.Complete) { }}
添加一个判断 这个判断可以更好地保证控件在加载了大部分目标网页信息后才执行下面的代码
原理不是很明白 但实验证明抓取目标数据的量的确增加了.
所以想捕捉到更多数据 可以使用定时器隔一段时间就对网页进行一次解析 提高抓取数据量.
简单来说就是 控件timer 和 WebBrowser的Navigate方法的结合使用.
- WebBrowser + HtmlPraser 抓取ajax网页的源代码
- 抓取和分析网页的类源代码
- 抓取和分析网页的类源代码
- C++抓取网页源代码
- delphi Webbrowser 获取网页源代码
- cookie ajax动态网页数据的抓取
- scrapy抓取ajax请求的网页
- 使用Ajax抓取远程网页源代码并抓取其中图片【老司机不须再用】
- c#信息抓取一:抓取网页源代码
- 使用Socket抓取网页源代码
- java简单抓取网页源代码
- java抓取网页源代码《转载》
- 解决Webbrowser定时抓取网页数据时,内存累积不释放的问题
- c# 用webBrowser读取网页源代码
- PHP抓取网页内容获得网页源代码
- PHP抓取网页内容获得网页源代码
- Ajax网页源码抓取程序
- scrapy 抓取ajax请求的网页-以ifanr为例
- win7下 ping 127.0.0.1不通是怎么回事
- QImage 总结
- 【jiasuba】教你零痕迹使用U盘消除记录信息的办法
- 嵌入式系统中的线性Flash文件系统设计 2007-03-09 19:03:27 作者:吴雨俊 来源:互联网 作者: WuYJ@263.net.cn 摘要:设计一种能够在典型嵌入式环境下
- 对 seo的改革
- WebBrowser + HtmlPraser 抓取ajax网页的源代码
- 转发:美国主机的地理位置
- 企业网站内容建设跟不上百度要求
- uva 10596
- uboot的lowlevel_init.s解析
- 百度搜索对权重提升有巨大影响
- rails 之 form_for VS form_tag
- 【win8应用商城一直在挂起状态无法安装怎么办】
- Calling a Web API From a .NET Client (C#)