python爬虫怎么安装_如何快速入门 Python 爬虫

本篇 Chat 涉及的全部代码都已上传到 GitHub:

一、什么是爬虫

在真正讲爬虫相关技术之前,我想简单说一下什么是爬虫。这里就不照搬定义了,没多大意思。

你还记得当你浏览网页时,具体发生了什么事吗?

你打开了浏览器。

你在浏览器标签页的地址栏上,键入了你想访问的地址,比如 https://www.baidu.com。

你敲击了回车。

浏览器获悉了你想访问的地址,并向百度的服务器发起了此次请求。

浏览器获取了百度服务器返回的结果,并进行了渲染。

你看到了百度的首页。

上面这个过程符合我们正常的经历,所以理解起来应该没有什么问题。但是第 5 点说得还是太笼统了,我们重新组织一下语言:

1. 你打开了浏览器。

2. 你在浏览器标签页的地址栏上,键入了你想访问的地址,比如 https://www.baidu.com。

3. 你敲击了回车。

4. 浏览器获悉了你想访问的地址,并向百度的服务器发起了此次请求。

5. 百度的服务器接收到了浏览器的请求,计算之后,返回了百度首页的源码。

6. 浏览器接收到了百度首页的源码,这是一个 html 文档。

7. 浏览器对此 HTML 进行了解析,发现它还引用了一些图片。比如

superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?where=super

JS 文件,比如

CSS 文件,比如

等静态文件。这些东西在你“右键 -> 查看网页源代码”的时候都可以看到。有的网页甚至还会引用新的 iframe,不过这里没有,就不说了。

8. 为了保证你能够看到正确的图片、样式,并以正确的方式响应你的操作,浏览器开始向相应服务器(注意,这里不一定还是百度的服务器了,目标服务器由资源的 URL 决定)发起请求。

9. 目标服务器收到请求,并返回相关资源。

10. 浏览器收到了全部资源,完成了对页面的渲染。

11. 你看到了正确的百度首页。

那么,爬虫是什么呢?

我们可以把爬虫当成一个机器人,它的任务是不断地、自动地从网络上获取我们需要的相关信息,并以我们期望的形式将信息保存下来。比如,从 CSDN 上下载一些 Python 相关的文章,从豆瓣上下载图书信息,从图库下载图片等等。

对应于人类浏览网页的过程,我们看一下爬虫是怎么浏览网页的:

为爬虫选择一个用于进行 HTTP 请求的类库,相当于人类使用的浏览器。这里,我们以神器 requests 为例。

确定想要访问的网址,我们仍然以百度首页 https://www.baidu.com 为例。

爬虫通过 requests 类库,对 https://www.baidu.com 发起请求。

百度的服务器接收到请求,返回 https://www.baidu.com 的源码。

爬虫接收到百度首页的源码,对源码内容进行解析,获取我们关心/需求的数据。需要注意的是,除非是需要特定资源,否则爬虫一般不会请求源码中引用的静态文件,这是爬虫获取信息的速度比人工访问快的原因之一,因为它直接放弃了无用资源,节省了加载时间。

假设我们关心从百度首页能够跳转到哪些页面,我们关心的内容就是网页源码中的 a 标签,准确来说,是 a 标签中的 href 属性的值。我们在第 5 步已经对源码进行了解析,并获取了相关数据,此时,我们选择合适的方式将数据保存下来(比如,写入文件、写入数据库等)。

当然了,上面这个是访问一次特定网页的逻辑,实际爬虫编写中逻辑会更加复杂。我们这里先不讨论,后面会举例说明,我想这个过程已经能让你直观感受到爬虫是怎么工作的了。

二、开始爬虫前的准备工作

在正式编写爬虫之前,我们还需要对一些基础的工具做出介绍,并在一定程度上达成共识。

2.1 操作系统的选择

目前用的比较多的 PC 操作系统无非以下三种:

Linux 系列发行版本

Windows 系列

macOS 系列

emmm,我比较穷,从没买过 MacBook,自然也没使用过 macOS。秉持着“没有经历就没有发言权”的原则,本次讨论直接排除 macOS 选项。

就 Linux 和 Windows 而言,我更推荐 Linux,理由如下:

选择 Linux,你会有更多对计算机的掌控力,你可以做更多个性化的定制。你不用担心计算机来指挥你,比如“关机并更新”、“重启并更新”。

Linux 中,依赖、环境的安装相比于 Windows 更容易。且有些依赖,可能只支持 Linux。

因为终端的存在,在 Linux 下开发比 Windows 更惬意。

有些程序在 Linux 下运行更快。(滑稽.jpg)

当然,以上只是我的个人看法,不要求大佬们认同我的观点。反正自从换了 Linux 开发之后,我是再也不想碰 Windows 了。求同存异吧。

对于从 Windows 切换为 Linux,有些问题是不可避免的,比如:

中文输入法

即时通讯工具,QQ/TIM/ 微信

办公的话可能需要钉钉

足够好用的 IDE

诚然,Linux 的生态和 Windows 比起来,还是有些薄弱。比如在 Ubuntu 上装个搜狗输入法,有时候可能就要捯饬半天。不过,后来我发现了一个神器,强烈安利一下深度科技的 Deepin 操作系统。

Deepin 也是一个 Linux 发行版本,国内公司做的,所以也更符合国人的习惯。自带搜狗输入法,QQ、微信是通过 Wine 定制适配的,可以通过应用商店一键安装,大部分在 Windows 下常用的软件在 Deepin 中都能够找到,或找到其替代品。而且必须夸一句,Deepin 的桌面系统做的真的挺好看。

正常来说,小白也是完全可以从 Windows 无缝切换到 Deepin 上来的。而且就作为开发环境而言,Deepin 是完全满足需求的。当然,它也存在着不少缺点,比如比较吃内存、系统稳定性稍差等。作为开发机是没有问题的,但请千万不用作为生产环境!

如果想要了解的话,可以访问 Deepin 的官网:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值