不止是动态渲染反爬虫

动态网页比静态网页更具有交互性,能给用户提供更好的体验。动态网页中常见的表现形式有下拉刷新,点击切换和悬停显示等。有Javascript改变HTML_DOM导致页面内容发生变化的现象称为动态渲染。很多时候开发者只是想完成某个交互功能,而不是特意区分正常用户的爬虫程序,但这在不经意间限制了爬虫对数据的获取。由于编程语言没有像浏览器一样内置Javascript解释器和渲染引擎,所以动态渲染是天然的反爬虫。

常见的动态渲染反爬虫案例

动态渲染广泛应用在Web网站中,大部分网站会使用Javascript来提升用户体验。

自动执行的异步请求

异步请求能减少网络请求的等待时间,从而提升网页加载速度。为了追求用户体验,提升网站加载速度和减少用户等待时间,开发者会将内容较多的综合信息页面拆分成多个部分,然后使用异步请求的方式获取资源。

在这里插入图片描述
https://611.com/CompetitionSchele_Schele?categoryID=&relatedType=&relatedTypeID=&r=0.04535191946248718
在这里插入图片描述

点击事件和计算

点击事件指得是用户在浏览网页的过程中使用鼠标点击按钮或标签等页面元素的操作,这类事件通常会与一个Javascript方法绑定在一起,当事件触发时浏览器就会执行事件绑定的办法。这里提到的计算是指只用Javascript计算数值并将结果渲染到网页。

开发者使用Javascript计算数据有可能是为了反爬虫,也有可能是为了提高用户体验,因为客户端本地的计算速度远远超过网络请求的速度。假设当前页面有50个标签页,用户每一次点击时页面的内容都会发生改变,如果使用异步请求方式(假设每次请求的响应时间是2秒),那么消耗在等待上的时间就是100秒,等待的时间会让用户觉得反应很慢。但是使用本地计算,网页内容变换的速度就非常快。

在这里插入图片描述

下拉加载和异步请求

当我们点击下一页或者指定页码按钮的时候,浏览器会跳转到对应页码,这个跳转造成了页面的刷新,也就是向其他页面发起请求。而下拉加载通过异步请求和局部渲染避免刷新整个页面,局部渲染即避免了重复请求资源,又减少了用户等待的时间,这对于网站来说是一件很有意义的事。

在这里插入图片描述

小结

现代网站通常是多种技术综合实现的结果,使用到的技术组合不仅又以上列出的几种。但无论如何变化,动态渲染的基础是不会改变的,只要能够解决页面渲染问题,那么这种动态网页造成的反爬虫问题就迎刃而解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成都—大数据开发工程师—杨洋

你的打赏是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值