一.爬虫介绍
1.什么是爬虫?
爬虫,从本质上来说,就是利用程序在网上拿到对我们有价值的数据(简单一句话就是代替人去模拟浏览器进行网页操作)。
2.为什么需要爬虫?
为其他程序提供数据源 如搜索引擎(百度、Google等)、数据分析、大数据等等。爬虫能做很多事,能做商业分析,也能做生活助手。而公司,同样可以利用爬虫来实现巨大的商业价值。比如你所熟悉的搜索引擎——百度和谷歌,它们的核心技术之一也是爬虫,而且是超级爬虫。
3.爬虫的分类
- 通用网络爬虫 例如 baidu、google、yahu
- 聚焦网络爬虫: 根据既定的目标有选择的抓取某一特定主题内容
- 增量式网络爬虫: 指对下载网页采取增量式的更新和只爬行新产生的或者已经发生变化的网页爬虫
- 深层网络爬虫: 指那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的web页面 例如 用户登录注册才能访问的页面
二.通讯协议
1.端口
我们想要进行数据通讯分几步?
- 1. 找到对方ip
- 2. 数据要发送到对方指定的应用程序上。为了标识这些应用程序,所以给这些网络应用程序都用数字进行了标识。为了方便称呼这个数字,叫做 端口。这里的端口 我们一般都叫做 '逻辑端口'
- 3. 定义通讯规则。这个通讯规则我们一般称之为协议
2.通讯协议
- 国际组织定义了通用的通信协议 TCP/IP协议
- 所谓协议就是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则
- HTTP又叫做超文本传输协议(是一种通信协议),它的端口是 80
三.网络模型
后期更新了新的参考模型 TCP/IP参考模型
什么是HTTPS?
- https=http+ssl,顾名思义,https是在http的基础上加上了SSL保护壳,信息的加密过程就是在SSL中完成的
- https,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL
- SSL也是一个协议,主要用于web的安全传输协议
四.一些概念
1.GET和POST
- GET : 查询参数都会在URL上显示出来(直接在网页中显示)
- POST : 查询参数和需要提交数据是隐藏在Form表单里的,不会在URL地址上显示出来(一般在需要登录跳转的网页中显示)
2.URL的组成部分
- URL: 统一资源定位符(即我们通常说的“网址”)
- 比如一个网址(URL)为:https://new.qq.com/omn/TWF20200/TWF2020032502924000.html
- https: 协议
- 域名:如果把一个网页类比为一幢房子,URL指示了网页的地址,就像房子在地球上的详细到某某街道某某号的具体地址,那么域名就像房子所在的国家,指示了网站的地址。https://new.qq.com/omn/TWF20200/TWF2020032502924000.html中域名为new.qq.com
- port:端口号(: 80)/new.qq.com 在他的后面有个 :80 可以省略
- TWF20200/TWF2020032502924000.html 访问资源的路径
- #anchor: 锚点,用前端在做页面定位的
- 注意 : 在浏览器请求一个url,浏览器会对这个url进行一个编码。(除英文字母、数字和部分标识其他的全部使用% 加 十六进制码进行编码)
3.User-Agent
- 用户代理。作用:记录用户的浏览器、操作系统等,为了让用户更好的获取HTML页面效果
4.Refer
- 表明当前这个请求是从哪个url过来的。一般情况下可以用来做反爬的技术
5.状态码
- 200 : 请求成功
- 301 : 永久重定向(比如搜索www.jingdong.com,网页的状态码就为301,因为京东的搜索网址改成了www.jd.com)
- 302 : 临时重定向(比如搜索www.zhihu.com跳转到知乎登录页面,因为登陆后才会跳转至知乎首页,所以登录的这个页面就是一个临时的页面)
- 403 : 服务器拒绝请求
- 404 : 请求失败(服务器无法根据客户端的请求找到资源(网页))
- 500 : 服务器内部请求
五.抓包工具
- Elements : 元素 网页源代码,提取数据和分析数据(有些数据是经过特殊处理的所以并不是都是准确的)
- Console : 控制台 (打印信息)
- Sources : 信息来源 (整个网站加载的文件)
- NetWork : 网络工作(信息抓包) 能够看到很多的网页请求