Python爬虫——爬虫简介
1.通讯协议
数据通讯的步骤:
- 1.找到对方的ip
- 2.数据发送到对方指定的应用程序上。
- 3.定义通讯规则。
1.1 ip
- ip:全称Internet Protocol Address,即互联网协议地址,是分配给用户上网使用的网际协议的设备的数字标签。
1.2 端口
- 端口:在执行第二步时,为了区别不同的应用程序,所以给这些网络应用程序都用数字进行了标识。为了方便称呼这些数字,我们称之为"端口"。这里的端口指的是“逻辑端口”。
1.3 通讯协议
- 通讯协议:所谓通讯协议就是指计算机通信网络中计算机之间进行通信所必须共同遵守的规定或规则
- TCP/IP协议:国际组织定义的通用的通信协议
- HTTP:又叫超文本传输协议,它的端口号是80
2.网络模型
2.1 OSI模型
- 开放式系统互联通信参考模型,一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。
层次 | 功能 |
---|---|
应用层 | 用户的应用程序和网络之间的接口 |
表示层 | 协商数据交换格式,相当公司中简报老板、替老板写信的助理 |
会话层 | 允许用户使用简单易记的名称建立连接,相当于公司中收寄信、写信封与拆信封的秘书 |
传输层 | 提供终端到终端的可靠连接,相当于公司中跑邮局的送信职员 |
网络层 | 使用权数据路由经过大型网络,相当于邮局中的排序工人 |
数据链路层 | 决定访问网络介质的方式。在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址,相当于邮局中的装拆箱工人。 |
物理层 | 将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人。 |
2.2 TCP/IP模型
- TCP/IP协议在一定程度上参考了OSI的体系结构,并进行了简化。
层次 | 功能 |
---|---|
应用层 | 应用程序间沟通 |
传输层 | 主要是提供应用程序间的通信 |
网络层 | 主要定义了IP地址格式,从而能够使得不同应用类型的数据在Internet上通畅地传输 |
网络接口层 | 负责接收IP数据包并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层 |
2.3 HTTPS
- HTTPS是什么:HTTPS = HTTP +SSL,即在HTTP的基础上加上SSL保护壳,信息的加密过程就是在SSL中完成的
- HTTPS,是以安全为目标的HTTP通道,简单等讲就是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL
- SSL也是一个协议,主要用于web的安全传输协议
3.爬虫简介
3.1 什么是爬虫?
- 简单来说就是代替人去模拟浏览器进行网页操作
3.2 为什么需要爬虫?
- 为其他程序提供数据源 如搜索引擎(百度、Google等)、数据分析、大数据等
3.3 企业获取数据的方式?
- 1.公司自有数据,如员工信息
- 2.第三方平台购买的数据(百度指数、数据堂)
- 3.爬虫爬取的数据
3.4 Python做爬虫的优势
编程语言 | 做爬虫特点 |
---|---|
PHP | 对多线程、异步支持不太好 |
Java | 代码量大,代码笨重 |
C/C++ | 代码量大,难以编写 |
Python | 支持模块多、代码简洁、开发效率高(scrapy框架) |
3.5 爬虫分类:
爬虫分类 | 特点 |
---|---|
通用网络爬虫 | 将互联网上的网页下载到本地数据库,形成一个备份 |
聚焦网络爬虫 | 根据既定的目标有选择地抓取某一特定主题内容 |
增量式网络爬虫 | 对下载网页采取增量式的更新和只爬行新产生的或者已经发生变化的网页爬虫 |
深层网络爬虫 | 指获取那些大部分内容不能通过静态连接获取、隐藏在搜索表单后的,只有用户提交一些关键词才能获取的web网页爬虫 列如:用户登录注册才能访问的网页 |
补上
4.几个概念
4.1 GET和POST
- GET:查询参数会在URL上显示出来
- POST:查询参数和需要提交数据是隐藏在Form表单里的,不会在URL地址上显示出来
4.2 URL组成部分
- URL:统一资源定位符
例如:https://new.qq.com/omn/TWF20200/TWF2020050500323200.html - https:协议
- new.qq.com:主机名,可以将主机理解为一台名叫new.qq.com的机器。这台主机在qq.com域名下
- port端口号:80/new.qq.com后面有个:80 可以省略
注意:若是以https开头的加端口号可能无法访问,但是用http可以访问 - TWF20200/TWF2020050500323200.html:访问资源路径
- #anchor:锚点用在前端做页面定位的,可以直接将页面移到指定位置
- 注意:在浏览器请求一个URL,浏览器会对这个URL进行一个编码。(除英文字母、数字和部分标识外其他的全部使用%加十六进制码进行编码)
- 例如:https://www.baidu.com/s?ie=UTF-8&wd=%E6%88%91%E7%88%B1%E5%AD%A6%E4%B9%A0
- %E6%88%91%E7%88%B1%E5%AD%A6%E4%B9%A0 = 我爱学习
4.3 User-Agent 用户代理
- 作用:用于记录用户的浏览器、操作系统等,为了让用户更好的获取HTML页面效果
User-Agent:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36 - Mozilla Firefox(Gecko内核)
4.4 refer
- 表明当前这个请求是从哪个URL过来的。一般情况下可以用来做反爬的技术
4.5 状态码
状态码 | 含义 |
---|---|
200 | 请求成功 |
301 | 永久重定向 |
302 | 临时重定向 |
403 | 服务器拒绝请求 |
404 | 请求失败(服务器无法根据客户端的请求找到资源(网页)) |
500 | 服务器内部请求 |
5.抓包工具
采用的是谷歌浏览器上工具的:
模块名 | 功能 |
---|---|
Elements | 网页源代码,提取数据和分析数据(有些数据是经过特殊处理的所以并不是都是准确的) |
Console | 控制台 (打印信息) |
Sources | 信息来源 (整个网站加载的文件) |
NetWork | 网络工作(信息抓包) 能够看到很多的网页请求 |
- 可以在打开的网页上单击右键→点击检查,就会出现下面的情况(截取部分),其中前四个模块便是爬虫常用的。