抓取动态网页(编写一个爬虫程序时所的相关概念(一)_)

优采云 发布时间: 2022-04-04 22:01

  抓取动态网页(编写一个爬虫程序时所的相关概念(一)_)

  在本节中,我们了解静态网页和动态网页的概念。如果您熟悉前端语言,那么您可以快速理解本节。

  我们在编写爬虫程序时,首先要判断要爬取的页面是静态的还是动态的。只有确定了页面类型,才能方便后续对网页进行分析和编程。对于不同类型的网页,编写爬虫程序时使用的方法也不同。

  静态页面

  静态网页是标准的HTML文件,可以直接通过GET请求方式获取。文件扩展名有.html、.htm等。网页可以收录文本、图像、声音、FLASH*敏*感*词*、客户端脚本和其他插件等。静态网页是构建网站的基础,早期的网站一般都是由静态网页制作而成。静态不是静态的,它还包括一些*敏*感*词*效果,不要误会。

  我们知道当网站信息量很大时,网页的生成速度会降低。由于静态网页的内容比较固定,不需要连接后台数据库,响应速度非常快。但是静态网页更新比较麻烦,每次更新都需要重新加载整个网页。

  静态网页的数据全部收录在 HTML 中,因此爬虫可以直接在 HTML 中提取数据。页面爬取可以通过分析静态网页的URL,找到URL查询参数的变化规律来实现。与动态网页相比,静态网页对搜索引擎更友好,对搜索引擎有好处收录。

  动态网页

  动态网页是指使用动态网页技术的页面,如 AJAX(指一种用于创建交互式快速动态网页应用的网页开发技术)、ASP(一种创建动态交互式网页和构建强大网页应用的方法) ) 程序)、JSP(Java 语言创建动态网页的技术标准)等技术,无需重新加载整个页面内容,即可实现网页的局部更新。

  动态页面利用“动态页面技术”与服务器交换少量数据,从而实现网页的异步加载。我们来看一个具体的例子:打开百度图片(/),搜索Python。当鼠标滚轮滚动时,网页会自动从服务器数据库加载数据并渲染页面。这是动态网页和静态网页最基本的区别。如下:

  

  图3:动态网页(点击查看高分辨率图片)

  除了 HTML 标记语言之外,动态网页还收录特定功能的代码。这些代码让浏览器和服务端进行交互,服务端会根据客户端的不同请求生成网页,涉及到数据库连接、访问、查询等一系列IO操作,所以响应速度稍差与静态网页相比。

  注意:一般网站通常采用动静结合的方式来达到平衡状态。可以参考《网站构建动静结合》简单了解。

  当然,动态网页也可以是纯文本的,页面还可以收录各种*敏*感*词*效果。这些只是网页内容的表现形式。其实无论网页是否有动态效果,只要使用了动态网站技术,那么这个网页就称为动态网页。

  爬取动态网页的过程比较复杂,需要通过动态抓包获取客户端与服务器交互的JSON数据。抓包时,可以使用谷歌浏览器开发者模式(快捷键:F12)Network选项,然后点击XHR找到获取JSON数据的URL,如下图:

  

  图 4:Chrome 抓取数据包(点击查看高分辨率图片)

  或者也可以使用专业的抓包工具Fiddler(点击访问)。动态网页的数据抓取将在后续内容中详细讲解。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线