爬虫基础
爬虫概念
爬虫又称网页蜘蛛,网络机器人
模拟人操作客户端,向服务器发送请求获取响应自动化程序或脚本
实质:自动化批量获取数据测试,向服务器发送文件
1. 模拟 爬虫程序模拟一个人操作客户端的行为,不需要客户端,只是一种模拟操作
2. 客户端: 浏览器和app
3. 自动化:当数据量较大时手动实现不可能,数据的是时效性
什么语言可以实现爬虫
python, C,C++,java,golang,node.js,php
1. PHP:并发能力差,无法保证数据,爬取效率低
2. C/C++代码多,难学,开发效率低,学习成本高,处于研究阶段
3. java语言: 唯一一个可以和python相抗,开发效率低,维护成本高
4. python:简单易用,开源免费,生态环境良好,大量库和框架的支持,提高开发效率
语言的生态就是:使用的人多,大家发现的问题多,解决的方案多
爬虫的分类
聚焦爬虫,通用爬虫
1通用爬虫概念:为搜索引擎提供检索服务通用爬虫工作流
2通用爬虫工作流
3SEO优化:
提高网站在搜索引擎中的排名
4如何让搜索引擎抓取你的网站
1. 设置友情链接
2. 主动提交网站
3. 百度竞价:花钱能解决
5robots协议,作用是:指定那些网站可以爬取数据,那些网站不可以爬取数据
OSI七层模型
应用层,表示层,会议层,传输层,网络层,数据链路层,物理层
tcp和udp
从下往上数
5应用层:http/https协议,ftp协议,sftp协议ssh协议
4传输层:udp,tcp
3网络层:ip
2数据链路层:ARP
1物理层:以太网
http协议
http协议是(hyper , text , transfer , protocol) 协议是超文本传输协议,超文本:html-->超文本标记语言,端口80,广泛使用http协议为1
https协议
加密传输,端口443
https全称是Hyper Text Tranfer Protocol over Secure Socket Layer 是以安全为目标的http通道,http下加入ssl安全套接层
https是安全体现在ssl的加密行为即通过https协议传输的数据都是经过ssl加密
https作用
建立一个信息安全的通道来保证数据传输安全
确认网站的真实性,凡是使用https的网站都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过ca机构颁发的安全签章来查询
http和https的区别
http端口是80,https端口是443,https需要ca证书,需要一定的费用
http是超文本传输协议明文传输,https是在http的基础上增加了ssl安全套接层,数据的加密传输http和https使用的是完全不同的连接方式,都是无状态的
tcp协议和udp协议
tcp协议:是一种面向连接的,可靠的,基于字节流的传输层通讯协议
有序性:数据包编号,判断数据包的正确次序
正确性:使用checksum函数检查数据包是否损坏,发送接收时都会极端校验
可靠性:发送端有超时重发,并有确认机制识别错误和数据丢失
可控性:滑动窗口协议与拥塞控制算法控制数据包的发送速度
udp协议:用户数据面向无连接的传输层协议,传输不可靠
无限接:可能造成数据丢失或损坏
报文小:传输速度快
吞吐量大的网络传输:可以在一定程度上承受数据丢失
服务器常见的端口
1. ftp:文件传输协议 21
2. ssh用于远程登录会话 端口
3. mysql关系型数据库 端口3306
4. mongodb非关系型数据库 端口27017
5redis非关系型数据库 端口6379