前言
在这章中会向大家讲述动态网页和静态网页的区别和如何动态网页的原理。
提示:以下内容仅供参考学习。
一、什么是动态网页
网页有动态网页和静态网页。
静态网页在浏览器中展示的内容都位于html源码中。
动态网页:主流网站大多使用JavaScript展现网页内容,与静态网页不同的是,使用JavaScript时,很多内容并不会出现在HTML源代码中。
所以爬取静态网页的技术可能无法正常使用,因此抓取动态网页需要我们用到两种技术:通过浏览器审查元素解析真实网页地址和使用Selenium模拟浏览器的方法。
这么说对于初次入门的读者可能有点抽象,接下来笔者会先介绍几个动态网页示例来帮助读者更好了解其区别。
二、动态网页的原理
1.AJAX
读到这懵不懵?啥?你不是说要介绍一些实例?这AJAX又是什么?
稳住! 正所谓知己知彼百战不殆。
在介绍动态网页实例之前笔者会先向大家介绍动态网页的原理这就是——AJAX(Asynchronous Javascript And XML)。也就是异步JavaScript和XML。这正是动态网页的价值所在,通过在后台服务器进行少量数据交换就可以使网页实现异步更新。简单来说就是不刷新整个页面就可以对网页内部分数据进行更新。
这么做的好处一个是减少了网页重复内容的下载,另一方面节省了流量,因此AJAX得到了广泛应用。
相对静态页面 使用AJAX的页面可以使互联网应用程序更小更快,但是AJAX网页的爬虫过程比较麻烦。
2.动态网页实例
实际上这部分内容原来我已经填充过了,我以哔哩哔哩和淘宝商品页面为例,但是在过程中遇见了一些问题,请教了几位大佬后大致有了一个轮廓。于是连夜对博客进行了修改。
其实一般我们所需要登录的页面大多都是动态页面,它们是有后台有服务器的,我们所能看见的代码都是前端他们确认展示的。
举个例子。 这有一个水果,你看见的是一个苹果,外面那一层看起来红彤彤的,用小刀割下一点尝尝也的确是苹果,但是实际上它的内核是橘子。 但是这个橘子很聪明,自己可以制造一个苹果的外壳如果想要获取橘子,只靠一把小刀就不够了。
这就像动态加载网页的服务器和展现在前端的代码一样。如果要获取静态网页代码或者内容,用requests或者beautifulsoup等获取即可,但是如果要获取动态万一的真实内容,只靠这些就不够了,可能你可以获取内容,但是却并不是你想要的。
3.抓取动态网页信息
对于使用AJAX加载的动态网页,可以通过以下两种方式抓取其中内容
(1)通过浏览器审查元素解析地址
(2)通过Selenium模拟浏览器抓取
这部分内容我放到下篇博客进行分析,且听我娓娓道来。
感谢
在这感谢为我提供帮助的大佬,后续对博客我也会慢慢改进完善。