爬虫学习01
爬虫的概念:网络爬虫,就是模拟客户端(主要指浏览器)发送网络请求,接收请求响应,一种按照一定规则,自动地抓取互联网信息的程序
模拟浏览器,发送请求,获取响应
爬虫特点:
- 原则上,只要是客户端能做的事情,爬虫都能够做到
- 爬虫也只能获取客户端所展示出来的数据
爬虫的作用:
- 数据采集
爬取微博等社交网站评论(后续机器学习舆情分析)
爬取招聘等网站的招聘信息(数据分析、挖掘)
新浪滚动新闻
百度新闻网站 - 软件测试
爬虫自动化测试
虫师 - 12306抢票:点击查询就是发送请求,获取响应
- 网站上的投票
- 网络安全
短信轰炸
web漏洞扫描
爬虫的分类:
- 根据爬取网站数据不同:
通用爬虫:目标没有上限,如搜索引擎
聚集爬虫:目标网站是有上限的,专门爬取某一类的网站的数据 - 根据是否以获取数据为目的:
功能性爬虫:投票、点赞、web漏洞扫描等,实现某一功能,而不爬取数据。
数据增量爬虫:比如数据增量,以获取数据为目的,爬取网站数据存在数据库中。 - 根据url地址和对应网页内容是否改变:
url改变,网页内容也变换的数据增量爬虫
url不变,网页变化的数据增量爬虫
爬虫的流程:
- 获取url
- 发送请求,获取响应这里要用的http协议
- 解析响应
- 保存数据
HTTP协议:
在爬虫过程中,发送请求获取响应时要用到http/https协议。
http和https协议的区别:
- http协议:超文本传输协议,m默认端口是80
- https协议:带有安全套接字层的超文本传输协议,默认端口是443,是http+ssl(安全套接字层)
- https协议比http协议更安全,http协议是明文传输,安全性不强。https协议的ssl对传输内容(请求体或响应体)进行加密处理。
常见的请求头与响应头
-
常用请求头:
host 域名
Connection 长链接
Upgrade-Insecure-Requests 升级为https请求
User-Agent 用户代理,作用是告诉服务器发送请求的浏览器以及机器的信息。
Referer 页面跳转处,用于检查请求是否合法,如果一个请求是直接通过详细的url进入某一详情页面,就可以怀疑这个请求是爬虫,因为正常请求都是一步一步点击来的。 Referer还可以用于防盗链(图片、视频)。
Cookie 保持会话,比如淘宝等只有登录状态才可以购买东西。常用于判断是否是某一个用户
Authorization 用于表示http协议中需要认证资源的认证信息,比如劲jwt认证 -
响应头:
Set-Cookie