什么是爬虫
请求网站并提取数据的自动化程序
爬虫的基本流程
发起请求 --> 获取响应数据 --> 解析/清洗数据 --> 保存数据
请求和响应(Request和Response)
浏览器发送信息给该网址所在的服务器,这个过程叫做HTTP Request
服务器收到浏览器发送的消息后,根据浏览器发送的消息内容,做相应处理,然后把消息回传给浏览器,这个过程叫做HTTP Response
Request中包含什么
1.请求方式
2.请求URL
3.请求头
4.请求体
Response中包含什么
1.响应状态
2.响应头
3.响应体
能抓怎样的数据
1.网页文本
2.图片
3.视频
4.其他
解析方式(清洗方式)
常见的解析方式是正则表达式或者BeautifulSoup等解析库。
怎样保存数据
一般保存到数据库或者文件
实战前环境准备
1.安装Python3 : https://www.cnblogs.com/0bug/p/8228378.html
2.安装HTTP请求库 requests:
pip install requests
基本用法参考:https://www.cnblogs.com/0bug/p/8252929.html
3.安装解析库 beautifulsoup4
pip install beautifulsoup4
基本用法参考:https://www.cnblogs.com/0bug/p/7871704.html
4.安装编辑器
推荐使用pycharm或者vscode,直接下载安装即可。
pycharm:https://www.jetbrains.com/pycharm/download/#section=windows
vsscode:https://code.visualstudio.com/
爬虫实战
略
网络协议(了解)
1.HTTP简介
web使用一种名为HTTP(HyperText Transfer Protocol,超文本传输协议)的协议规范,完成客户端到服务端等一系列运作流程,协议是指规则的约定。可以说,web是建立在HTTP协议上通信的。
简单的HTTP:
请求报文的构成:
响应报文的构成
更多HTTP相关知识点参考《图解HTTP》
2.TCP/IP
通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的。而HTTP属于它内部的一个子集。
计算机与网络设备要相互通信,双方就必须事先约定规则。例如:”如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎么结束通信等规则都要事先确定,不同的硬件、操作系统之间的通信“。所有的这一切都需要一种规则。而我们就把这种规则称之为协议。
3.TCP/IP的分层管理(OSI模型)
TCP/IP 协议族里重要的一点就是分层。把TCP/IP层次化是有好处的。比如,如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。而分层之后只需要把变动的层替换掉即可。把各层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动了。层次化之后,设计也变得相对简单了。处于应用层上的应用可以只考虑分派给自己的任务,而不需要弄清楚对方在地球上哪个地方、对方的传输路线是怎样的、是否确保传输送达等问题。
4.网络协议分层
计算机网络有7层、4层、5层的协议体系结构
1.七层
七层是指OSI七层协议模型,主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。
2.五层
五层只是OSI和TCP/IP的综合,是业界产生出来的非官方协议模型,但是很多具体的应用。实际应用还是TCP/IP的四层结构。为了方便可以把下两层称为网络接口层。五层体系结构包括:应用层、运输层、网络层、数据链路层和物理层。
3.四层
四层是指TCP/IP四层模型,主要包括:应用层、运输层、网际层和网络接口层。
三者对应关系如下图:
四层协议和对应的标准七层协议的关系如下图:
协议之间各自发挥作用:
参考:
https://blog.csdn.net/Beyond_2016/article/details/81482335
https://baike.baidu.com/item/OSI/5520?fr=aladdin