R语言爬虫系列4|AJAX与动态网页介绍

优采云 发布时间: 2022-05-08 02:01

  R语言爬虫系列4|AJAX与动态网页介绍

  

  作者:鲁伟,热爱数据,坚信数据技术和代码改变世界。R语言和Python的忠实拥趸,为成为一名未来的数据科学家而奋斗终生。个人公众号:数据科学家养成记 (微信ID:louwill12)

  第一篇戳:

  第二篇戳:

  第三篇戳:

  很早之前就写过用rvest包实现对静态网页的抓取之类的文章,以至于很久之后看到那些文章的朋友还拿来套,以为换个网址也能达到同样的抓取效果。然而事与愿违,殊不知这些通常自己会“动”,明明是同一个url,前后硬是两个不同的网页内容,利用rvest的爬虫自然也就失效了。

  究其缘由,还是在于有些网页的HTML/HTTP基础架构在一个页面布局中静态地显示内容,但是如果你用R函数来解析知乎首页,咱能通过这个首页实现抓取目的吗?答案当然是不能的。因为知乎首页是一个动态网站(DHTML),具体表现就是从首页不断下拉,网页内容在不断变化但url却一直都是,或者是点击了某个地方内容也发生了变化但抬头一看地址栏,url依然没有变化。对这样的网页进行抓取哪能按照以前的简单套路来?明显是不可行的。

  网络技术实现从静态到动态转变的一个关键角色是汇总于AJAX这个术语下的一组技术,所谓AJAX,全称叫做异步JavaScript和XML(Asynchronous JavaScript and XML),它是一组技术,不同的浏览器有自己的AJAX实现组件,有了AJAX技术之后,就不需要对整个网页进行刷新了,局部更新既不占用宽带又可以提高加载速度有没有,比如说刚刚的知乎首页,想看新内容?不断把网页下拉自动加载就好。

  再举个例子:比如说你们班拍毕业照,照完之后洗出来才发现哎呀少了一个人,那怎么办呢?传统的方式就是重新把大家集合起来再拍一次,那AJAX就不会这么做了,AJAX会把这位漏掉的同学P到先前的合照中去。总之,AJAX可以在不重新加载整个网页的情况下对网页的局部进行更新的某种技术。

  

  JavaScript如何将HTML网页转化为DHTML?

  JavaScript号称最流行的Web编程脚本语言,可惜小编并不懂这门语言,但这不妨碍咱们的网络数据抓取的需要。在爬虫专栏开始的第一篇文章的时候小编就说过,HTML、CSS和JavaScript是前端技术的三驾马车,要认识原生的JavaScript,重要的是了解其对于HTML的三种改进方法:

  1.以HTML中的

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线