接前面的文章:
网络爬虫的基本知识
3 爬虫的基本原理
3.1 爬虫概述
爬虫就是获取网页并提取和保存信息的自动化程序。
3.2 爬虫可以做什么?
爬虫最基础的工作就是抓取网页。
比如我们打开百度的首页:
百度的首页就相当于是一个爬虫入口。在这个入口中有非常多的URL,而这些URL又相当于是子入口。在这些子入口的后面又是更多的URL。
3.3 爬虫是怎么工作的?
3.3.1 获取网页
爬虫首先要做的工作就是获取网页,就是获取网页的源代码。
源代码里包含网页的部分有用信息,只要把源代码获取下来,就可以从中提取想要的信息。
最关键的部分就是构造一个请求并发送给服务器,然后接收到响应并将其解析出来。
Python提供了许多库来帮助实现这个操作,如 urllib、requests 等。
3.3.2 提取信息
获取网页源代码后,接下来就是分析网页源代码,从中提取想要的数据。
最通用的方法便是采用正则表达式提取。
这是一个万能的方法,但在构造正则表达式时比较复杂且容易出错。
由于网页的结构有一定的规则,所以还有一些根据网页节点属性、CSS 选择器或 XPath 来提取网页信息的库,如 Beautiful Soup、pyquery、lxml 等。
使用这些库,可以高效快速地从中提取网页信息,如节点的属性、文本值等。
3.3.3 保存数据
提取信息后,一般会将提取到的数据保存到某处以便后续使用。
保存形式多种多样,如可以简单保存为 TXT 文本或 JSON文本,也可以保存到数据库,如 MySQL和 MongoDB 等,还可保存至远程服务器,如借助 SFTP 进行操作等。
3.3.4 自动化程序
手工可以提取这些信息,但当量特别大或者想快速获取大量数据的话,就要借助程序。
爬虫就是代替我们来完成这份爬取工作的自动化程序。它可以在抓取过程中进行各种异常处理、错误重试等操作,确保爬取持续高效地运行。
以百度蜘蛛为例,百度蜘蛛的工作程序如下:
1、先选出一部分网页
我们先在搜索框中输入想要了解的关键词。比如,“江南水乡”这个关键词。百度会跳出很多有关页面。
这些页面就是百度蜘蛛挑选出来的部分页面。
2、然后以这些网页链接为种子 URL
在搜索结果中我们可以看到每一个标题、每一张图后面都是一个 URL 链接。
3、百度蜘蛛会把这些种子 URL 放入待抓取的URL队伍中,然后依次抓取
这也是我之前为什么在做 SEO 的原因,因为百度搜索结果页面中的排名很重要,排名越高,才越有机会被百度蜘蛛抓取到。
4、将 URL 通过 DNS 解析
蜘蛛抓取的 URL 要先拿去服务器那里核查一下对应的IP地址,这个过程就