放荡的人生|一节课教你用 python 搞定图片爬虫

—— 网站上看到了大量好看的图片再也不用右键另存为了
针对人群:

  • 对 python 感兴趣的零基础的童靴~
  • 有一定基础想深入了解 python 的童靴~
涉及知识:
  • 网络爬虫的本质
  • http 协议
  • requests 库
收获:
认识网络爬虫的本质 , 掌握爬虫的基本开发流程 , 了解互联网数据传输的基本原理 。
理论知识理论指导实践 , 知其然要知其所以然 , 我们先来学习必备的理论知识 。
什么是爬虫网络爬虫也叫网络蜘蛛 , 它特指一类自动批量下载网络资源的程序 , 这是一个比较口语化的定义 。 更加专业和全面的定义是:网络爬虫是伪装成客户端与服务端进行数据交互的程序 。
口语化的定义相信大家都能理解 , 不能理解的童靴请自觉面壁!
但是后面的客户端 , 服务端肯定有童靴不理解了 , 这就涉及下一个概念了 。
应用架构商业应用推动了互联网的飞速发展 , 目前几乎所有的商业应用都是基于互联网的 , 它们一般采用 c/s 架构 , b/s 架构或 m/s 架构 。
  • c/s 即 client server 客户端 服务端
  • b/s 即 browser server 浏览器 服务端
  • m/s 即 mobile server 移动端 服务端

放荡的人生|一节课教你用 python 搞定图片爬虫安装在用户电脑中的程序叫客户端 , 例如 LOL , 例如 QQ , 例如腾讯课堂等 。
为客户端提供服务支持的 , 运行在服务厂商服务器中的程序叫服务端 。
A 用户在 QQ 中给 B 用户发送一条信息的过程是:
A 发送的信息首先发送到服务器 , 服务器再将这个信息发送给 B 接收 。
特别的 , 当客户端是浏览器时 , 我们单独作为一种架构叫做 b/s 架构 , 例如各种网站;
当客户端是移动端上的 APP 时 , 我们单独作为一种架构叫做 m/s 架构 , 例如各种手机 APP 。
所以:本质上 b/s,m/s 也是 c/s 的一种!
那客户端和服务端是如何进行通信的呢?(网络通信涉及物理层和应用层 , 我们这里讨论应用层!)
不同的客户端和不同服务端进行数据交互 , 为了统一大家制定了各种传输协议 。
最开始每个团队设计的客户端和服务端之间的数据方式都不一样 , 为了提高开发效率和资源利用大家统一制定了各种应用传输协议 。
例如:
1、http 超文本传输协议
2、ftp 文件传输协议
3、smtp 电子邮件传输协议
因为大多数爬虫都是爬取的网页中的信息 , 所以我们今天主要了解 HTTP 协议 。
HTTP协议http 协议有厚厚一本书 , 今天我们讲主要流程 , 感兴趣的童靴听完课后就可以去收集资料钻研啦 。
一个基于 http 协议的数据传输分为 2 个部分 , 请求和响应 。
客户端向服务端发送一个 http 请求 , 服务端收到这个请求后根据请求进行处理 , 然后将结果以 http 响应的形式返回给客户端 。
HTTP请求
一个完整的 HTTP 请求报文包含:请求行 , 请求头 , 空行和请求数据 。
下图给出了请求报文的一般格式 。
放荡的人生|一节课教你用 python 搞定图片爬虫
放荡的人生|一节课教你用 python 搞定图片爬虫请求方法根据 http 标准 , http 请求可以使用多种请求方法 。
1.0 定义了三种请求方法:GET , POST 和 HEAD 方法


推荐阅读