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

爬虫的基本原理

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

爬虫概述

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

获取网页

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

提取信息

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

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

保存数据

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

自动化程序

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

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

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

JS渲染的页面

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


写在最后

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值