一、爬虫的概念
模拟浏览器,发送请求,获取响应
网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端(主要指浏览器)发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。
原则上,只要是客户端(浏览器)能做的事情,爬虫都能够做
爬虫也只能获取客户端(浏览器)所展示出来的数据
二、爬虫的作用
数据采集
抓取微博评论(机器学习舆情监控)
抓取招聘网站的招聘信息(数据分析、挖掘)
新浪滚动新闻
百度新闻网站
软件测试
爬虫之自动化测试
虫师
12306抢票
网站上的投票
投票网
网络安全
短信轰炸
web漏洞扫描
三、爬虫的分类
3.1 根据被爬取网站的数量不同,可以分为:
通用爬虫,如 搜索引擎
聚焦爬虫,如12306抢票,或专门抓取某一个(某一类)网站数据
3.2 根据是否以获取数据为目的,可以分为:
功能性爬虫,给你喜欢的明星投票、点赞
数据增量爬虫,比如招聘信息
3.3 根据url地址和对应的页面内容是否改变,数据增量爬虫可以分为:
基于url地址变化、内容也随之变化的数据增量爬虫
url地址不变、内容变化的数据增量爬虫
四、爬虫的流程
获取一个url
向url发送请求,并获取响应(需要http协议)
如果从响应中提取url,则继续发送请求获取响应
如果从响应中提取数据,则将数据进行保存
五、复习http请求
掌握 http以及https的概念和默认端口
掌握 爬虫关注的请求头和响应头
了解 常见的响应状态码
理解 浏览器和爬虫爬取的区别
1. http以及https的概念和区别(测试面试题)
HTTPS比HTTP更安全,但是性能更低HTTP:超文本传输协议,默认端口号是80
超文本:是指超过文本,不仅限于文本;还包括图片、音频、视频等文件
传输协议:是指使用共用约定的固定格式来传递转换成字符串的超文本内容
HTTPS:HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协,默认端口号:443
SSL对传输的内容(超文本,也就是请求体或响应体)进行加密
可以打开浏览器访问一个url,右键检查,点击net work,点选一个url,查看http协议的形式
2. 爬虫特别关注的请求头和响应头
Content-Type
Host (主机和端口号)
Connection (链接类型)
Upgrade-Insecure-Requests (升级为HTTPS请求)
User-Agent (浏览器名称)
Referer (页面跳转处)
Cookie (Cookie)
Authorization(用于表示HTTP协议中需要认证资源的认证信息,如前边web课程中用于jwt认证)
加粗的请求头为常用请求头,在服务器被用来进行爬虫识别的频率最高,相较于其余的请求头更为重要,但是这里需要注意的是并不意味这其余的不重要,因为有的网站的运维或者开发人员可能剑走偏锋,会使用一些比较不常见的请求头来进行爬虫的甄别3. 常见的响应状态码(测试面试)
200:成功
302:跳转,新的url在响应的Location头中给出
303:浏览器对于POST的响应进行重定向至新的url
307:浏览器对于GET的响应重定向至新的url
403:资源不可用;服务器理解客户的请求,但拒绝处理它(没有权限)
404:找不到该页面
500:服务器内部错误
503:服务器由于维护或者负载过重未能应答,在响应中可能可能会携带Retry-After响应头;有可能是因为爬虫频繁访问url,使服务器忽视爬虫的请求,最终返回503响应状态码