您的位置:首页 > 新闻资讯 >文章内容
几种获取Ajax加载信息的方法
来源:互联网 作者:admin 时间:2019-02-13 10:48:22

    网站为了应对各种爬虫采用了许多的反爬虫策略,即使不能完全杜绝爬虫进行爬取,也能大大降低爬虫的采集速度,比如说网站采用Ajax加载数据,但这些信息爬虫又不能不进行采集,那么爬虫怎么进行采集呢?今天小编为大家介绍几种获取Ajax加载信息的方法


    一、利用phantomjs的一个包装类库


    这个类库很全面,有基于各种浏览的驱动,当然也包括phantomjs,我们就用PhantomJSDriver类来操作。当先下载类库,下载完添加引用,调用,很简单,几行代码就可以。


几种获取Ajax加载信息的方法


    二、利用phantomjs这个开源项目


    这个项目说的通俗点就是一个无界面的基于webkit内核的浏览器,既然是浏览器当然就能获取javascript加载的内容。先简单的介绍下在win7下怎么用这个项目:


    1、下载windows版本,地址http://phantomjs.org/download.html,现在的版本是1.9.1;


    2、下载完,解压缩,放到某个文件夹下;


    3、配置环境变量,把这个文件夹的根目录配置到环境变量中。


    下面我们看怎么用C#来调用,这里用到Process类,具体看代码:


几种获取Ajax加载信息的方法


    上面代码中用到了一个test.js的文件,这个文件的写法需要参考一下phantomjs的api或者它自带的例子,很简单,比较好理解。


几种获取Ajax加载信息的方法


    三、利用WebBrowser控件


    这个方式大家也都知道,也就不多说了,说几个比较重要的地方。首先,我要在DocumentCompleted事件里面完成内容获取的工作,因为该控件是在文档加载完成后触发的。其次,这个事件有个问题,就是说如果在页面中有iframe框架之类的,如果这个iframe加载完成也会触发这个事件,所以我们要做个判断


    if (wb.ReadyState == WebBrowserReadyState.Complete && e.Url.ToString() == wb.Url.ToString())


    这个判断就是说在控件所有内容加载完并且是本页面加载完,而不是某个iframe加载完。然后就可以通过wb.Document.Body.InnerHtml来获取内容。


    以上介绍了几种获取Ajax加载信息的方法,其实三种方式的原理其实是一样的,就是通过浏览器引擎来解析javascript。


相关文章内容简介
推荐阅读
  • 11 2019-05
    IP代理能突破HTTPS加密的网站吗?

    IP代理能突破HTTPS加密的网站吗?很多网站使用的都是HTTP,但是相对于HTTP,HTTPS会更加的安全些,加密之后,我们想要抓取数据,IP代理还有用吗?

  • 29 2019-04
    爬虫如何设置用代理和模拟浏览器访问

    爬虫如何设置用代理和模拟浏览器访问?爬虫要想活得久,势必是要把自己好好整下的,以用户的模式访问,这是活得最长久的方法。基于这个原因,我们在给爬虫伪装时,可以从IP地址以及访

  • 23 2020-01
    批量注册就用代理ip

    在我们做一些网络推广时通常需要许多的账号辅助,比如微信投票,需要大量的微信账号;比如论坛发帖,由于论坛限制每天每账号只能发限定数量的帖子,就需要用到大量的账号;比如人气补量

  • 15 2019-10
    http代理对网络工作者的帮助

    互联网时代,诞生了很多新兴的职业,像是之前没有的电商、微商等。现在,很多人都转行加入到这个领域里,如果想要在这方面实现更快获利,那么我们就需要使用一些工具来帮助,比如代理

  • 13 2019-06
    怎么知道爬虫代理好不好用

    怎么知道爬虫代理好不好用?做数据采集的非常讲究爬虫代理的质量,如果这爬虫代理的质量不好,影响会非常大。但是有个问题很关键,怎么知道爬虫代理好不好用呢?

  • 05 2020-02
    自动换ip效率更高

    HTTP代理IP软件大家都不陌生了,对于很多网络工作人员来说是必不可少的工具,提升了很多工作效率。但是很多人还是对HTTP代理IP软件不是很了解,还有很多人认为手动切换IP也很好,并不相信

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部