第一章 爬虫介绍
1.通信协议
1.1端口
数据通信分为三步
IP
协议
端口
1.2通信协议
TCP/IP协议
TCP/IP协议是共同遵守的规定或规则
HTTP
HTTP又叫超文本传输协议(是一种通信协议) HTTP它的端口80
2.网络模型
参考模型
osi参考模型
应用层
应用层是直接面向用户的一层,用户的通信内容要由应用进程解决。
表示层
表示层为在应用过程之间传送的信息提供表示方法的服务。
会话层
会话层在应用进程中建立、管理和终止会话。会话层还可以通过对话控制来决定使用何种通信方式,全双工通信或半双工通信。
传输层
传输层主要为用户提供End—to—End(端到端)服务处理数据报错误、数据包次序等传输问题。
网络层
网络层是以路由器为最高节点俯瞰网络的关键层
数据链路层
数据链路层为网络层提供差错控制和流量控制服务,传输单位为帧。
物理层
物理层的主要功能是利用传输介质为数据链路层提供物理联接,单位比特流,既0和1.
TCP/IP参考模型
应用层
应用层为用户提供所需要的各种服务
FTP
Telnet
DNS
SMTP
传输层
两个主要的协议
传输控制协议(TCP)
TCP协议提供的是一种可靠的、通过“三次握手”来连接的数据传输服务
用户数据报协议(UDP)
UDP协议提供的则是不保证可靠的(并不是不可靠)、无连接的数据传输服务.
网络层(网际互联层)
该层有三个主要协议
网际协议(IP)
互联网组管理协议(IGMP)
互联网控制报文协议(ICMP)
主机至网络层(网络接入层(即主机-网络层))
网络接入层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。
2.1 HTTPS是什么呢?
https=http+ssl,顾名思义,https是在http的基础上加上了SSL保护壳,信息的加密过程就是在SSL中完成的,https,是以安全为⽬标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加⼊SSL层,HTTPS的安全基础是SSL
2.2 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.1GET和POST
GET
查询参数会在URL上显示出来
POST
查询参数和需要提交数据是隐藏在Form表单里的,不会在URL地址上显示出来
4.2 URL组成部分
url
统一资源定位符
例子:https://new.qq.com/omn/TWF20200/TWF2020032502924000.html
https协议
new.qq.com:主机名,在qq.com域名下
port端口号80:在域名后面,通常省略
后面是资源访问路径
#anchor 锚点:用来定位页面元素的
浏览器在访问时都会对url进行编码,全部使用%加16进制编码
4.3 User-Agent 用户代理
用来记录用户的浏览器和操作系统,为了让用户获得更好的HTML效果
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Win64
windows64位系统
like Gecko
属于火狐内核 Mozilla Firefox:(Gecko内核)
Chrome/78.0.3904.108
谷歌浏览器和型号
4.4 Refer
表明当前的请求时从那个URL过来的,一般情况下可以用来做反扒的技术
4.5 状态码
200 : 请求成功
301 : 永久重定向
例如 www.jingdong.com,他会直接跳转到www.jd.com
302 : 临时重定向
403 : 服务器拒绝请求
404 : 请求失败,服务器无法根据客户端的请求找到资源(网页)
500 : 服务器内部请求
5.抓包工具
Elements
元素网页源代码,提取数据和分析数据(有些数据是经过特殊处理的所以并不是都是准确的)
Console
控制台 (打印信息)
Sources
信息来源 (整个网站站加载的文件)
NetWork
网络工作(信息抓包) 能够看到很多的网页请求