《python3网络爬虫开发实战 第二版》之爬虫基础-爬虫的基本原理 详解

文章目录

  • 爬虫的基本原理
    • 爬虫概述
      • 获取网页
      • 提取信息
      • 保存数据
      • 自动化程序
    • 爬虫能够爬取什么样的数据?
    • JS渲染的页面
    • 写在最后

爬虫的基本原理

若是把互联网比作一张大网,爬虫便是在网上爬行的蜘蛛。网中的节点就是一个一个网页,蜘蛛爬到一个节点就相当于爬虫得到了一个网页的信息。网页之间的链接关系就是网上各个节点之间的连线。蜘蛛访问一个节点后,通过连线到达下一个节点,以此类推。当整个网站涉及到的页面都被爬虫访问到之后,网站的数据就被爬取下来了。

爬虫概述

爬虫简单讲,就是获取网页并提取和保存信息的自动化程序

获取网页

  • 在前文讲了请求和响应,响应体中的信息就是我们要获取到的网页源代码。
  • python提供了很多的库,可以构造一个请求并发送给服务器,然后接收响应并进行解析。如urllinbrequests
  • 而且请求和响应都可以使用类库提供的数据结构来进行表示,因此在接收到数据之后,只需要对数据结构中的body部分进行解析就可以了。

提取信息

获取到网页的源代码之后,就需要对源代码进行分析,从而提取到我们想要的数据。

  • 可以使用正则表达式,这种方法是万能的,但是构造正则表达式的过程比较困难而且容易出错
  • 可以利用网页结构自身的规则(层级嵌套),使用一些库根据节点信息或选择器或XPath来进行提取,如beautiful souppyquerylxml等等

保存数据

  • 提取信息之后,一般会将提取到的信息保存起来,以便后续使用。
  • 可以保存为TXT,JSON,也可以保存到数据库中,还可以保存在远程服务器上。

自动化程序

爬虫可以代替人类完成上述操作。爬虫就是代替我们完成爬取工作的自动化程序,可以在爬去过程中进行各种异常处理,错误重试等操作,确保爬取持续高效地运行。

爬虫能够爬取什么样的数据?

一句话概括:网络上有的,浏览器中可以访问到的,都可以爬取下来

JS渲染的页面

现在越来越多的网页时动态生成的。或者说原始的HTML代码只是一个空壳,具体的HTML中的节点,都是通过js动态添加的。那么我们用urllibrequests请求链接得到的,只是HTML空壳代码。这时候我们就需要分析源代码后台ajax结构,也可以使用 SeleniumSplashPyppeteerPlaywright库来模拟JS渲染。


写在最后

本系列博客是根据崔庆才老师的《python3网络爬虫开发实战 第二版》整理而成。每篇博客对应于每一节。主要是为了记录书中的重点,便于自己温习。如有错误或不足,请提出,大家一起学习,一起进步。

另:若转载,请附上本文链接。

你可能感兴趣的:(基于python的爬虫学习,爬虫,python,开发语言)