1.3 爬虫的基本原理
1.爬虫的概述
- 简单点讲,爬虫就是获取网页并提取和保存信息的自动化程序。
- 获取网页
- 爬虫的工作首先是获取网页,这里就是获取网页的源代码。源代码里包含网页的部分有用信息,所以只要获取源代码,就可以从中提取想要的信息了
- Python提供了许多库,如urllib、requests等,可以用这些库完成HTTP的请求操作。除此之外,请求和响应都可以用类库提供的数据结构来表示,因此得到响应之后只需要解析数据结构中的body部分,即可得到网页的源代码,这样我们用程序来实现获取网页的过程了
- 提取信息
- 获取网页的源代码后,接下来就是分析源代码,从中提取我们想要的数据。
- 最通用的提取方法是采用正则表达式,这个一个万能的方法,注意构造正则表达式的过程比较复杂且容易出错。
- 另外,由于网页结构具有一定的规则,所以还有一些库是根据网页节点属性、CSS选择器或XPath来提取网页信息的,如Beautiful Soup、pyquery、lxml等。使用这些库,可以高效地从源代码中提取网页信息,如节点的属性、文本值等
- 提取信息是爬虫非常重要的一个工作,它可以使杂乱的数据变得条理清晰,以便后续处理和分析数据
- 保存数据
- 提取信息后,一般会讲提取的数据保存到某处以便后续使用。
- 保存数据的形式多种多样,可以简单保存为TXT文本或JSON文本,也可以保存到数据库,如M有SQL和MongoDB等,还可以保存至远程服务器,如借助SFTP进行操作等
- 自动化程序
- 自动化程序是爬虫可以代替人来完成上述操作。我们当然可以手动提取网页中的信息,但是当量特别大或者想快速获取大量数据的时候,肯定还是借助程序快。
- 爬虫就是代替我们完成爬取工作的自动化程序,它可以在爬取过程中进行各种异常处理、错误重试等操作,确保爬虫持续高效地运行
- 获取网页
2.能爬怎样的数据
- 网页中存在各种各样的信息,最常见的便是常规网页,这些网页对应着HTML代码,而最常抓取的便是HTML源代码
- 有些网页返回的不是HTML代码,而是一个JSON字符串(其中API接口大多采用这样的形式),这种格式的数据方便传输和解析。爬虫同样可以抓取这些数据,而且数据提取会更加方便
- 网页中还包含各种二进制数据,如图片、视频和音频等,利用爬虫,可以讲这些二进制抓取下来,然后保存对应的文件名
- 网页中还有各种扩展名文件,如CSS,Javascript和配置文件等,这些文件其实最普通,只要在浏览器里面可以访问到,就可以抓取下来
- 上述内容其实都有各自对应的URL,URL基于HTTP或HTTPS协议,只要是这种数据,爬虫都可以抓取
3.JavaScript渲染的页面
- 有时候,我们用urllib或requests爬取网页时,得到的源代码和在浏览器中实际看到的不一样。
- 这是一个非常常见的问题。现在由越来越多的网页都采用Ajax、前端模块化工具构建的,可能整个页面都是由JavaScript渲染出来的,也就是说原始的HTML代码就是一个空壳。
- 对于这样的情况,我们可以分析源代码后台Ajax接口、也可以使用Selenium、Splash、Pyppeteer、Playwright这样的库来模拟JavaScript渲染
心揣信念,梦想就在脚下!

浙公网安备 33010602011771号