Python爬虫一:爬虫简介

1、通讯协议

1.1 端口

①找到对方ip

② 数据要发送到对⽅指定的应⽤程序上。为了标识这些应⽤程序,所以给这些 ⽹络应⽤程序都⽤数字进⾏了标识。为了⽅便称呼这个数字,叫做 端⼝。这⾥ 的端⼝ 我们⼀般都叫做 ‘逻辑端⼝’

③定义通讯规则。这个通讯规则我们⼀般称之为协议

1.2 通讯协议

①国际组织定义了通⽤的通信协议 TCP/IP协议。

②所谓协议就是指计算机通信⽹络中两台计算机之间进⾏通信所必须共同遵守的规定或规则。

③HTTP⼜叫做超⽂本传输协议(是⼀种通信协议) HTTP 它的端⼝是 80。https就是一种更加安全的加密协议http+ssl(secure socket layer)

2、网络模型

Python爬虫一:爬虫简介
Python爬虫一:爬虫简介

2.1什么是HTTPS

①https=http+ssl,顾名思义,https是在http的基础上加上了SSL保护壳,信息的加密过程就是在SSL中完成的

②https,是以安全为⽬标的HTTP通道,简单讲是HTTP的安全版。即HTTP下 加⼊SSL层,HTTPS的安全基础是SSL

2.2SSL怎么理解

SSL也是⼀个协议主要⽤于web的安全传输协议(secure socket layer)
Python爬虫一:爬虫简介

2.3Http请求与响应

HTTP通信由两部分组成: 客户端请求消息 与 服务器响应消息

Python爬虫一:爬虫简介

①当⽤户在浏览器的地址栏中输⼊⼀个URL并按回⻋键之后,浏览器会向HTTP 服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种⽅法。

②. 当我们在浏览器输⼊URL http://www.baidu.com 的时候,浏览器发送⼀个 Request请求去获取 http://www.baidu.com 的html⽂件,服务器把 Response⽂件对象发送回给浏览器。

③浏览器分析Response中的 HTML,发现其中引⽤了很多其他⽂件,⽐如 Images⽂件,CSS⽂件,JS⽂件。 浏览器会⾃动再次发送Request去获取 图⽚,CSS⽂件,或者JS⽂件。

④ 当所有的⽂件都下载成功后,⽹⻚会根据HTML语法结构,完整的显示出来了。

2.4客户端请求的Http请求

URL只是标识资源的位置,⽽HTTP是⽤来提交和获取资源。客户端发送⼀个 HTTP请求到服务器的请求消息,包括以下格式:请求⾏、请求头部、空⾏、请求数据四个部分组成,下图给出了请求报⽂的⼀般格式。
Python爬虫一:爬虫简介
Python爬虫一:爬虫简介

请求⽅法

HTTP 0.9:只有基本的⽂本 GET 功能。
HTTP 1.0:完善的请求/响应模型,并将协议补充完整,定义了三种请求⽅法: GET, POST 和 HEAD⽅法。
HTTP 1.1:在 1.0 基础上进⾏更新,新增了五种请求⽅法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT ⽅法。
HTTP 2.0(未普及):请求/响应⾸部的定义基本没有改变,只是所有⾸部键 必须全部⼩写,⽽且请求⾏要独⽴method、:scheme、:host、:path这些键值对。

3、什么是爬虫

代替人去模拟浏览器进行网页操作

3、1为什么需要爬虫

为其他数据提供数据源、数据分析、AI人工智能

抖音、短视频、分析数据1平台流量用户基数大2活跃度高

AI人脸识别、无人驾驶、智能家居、智能导航、无人机…有数据

3、2 企业有哪些获取数据的方式

3.2.1 公司自有的一些数据

3.2.2第三方平台的数据(免费)和(付费)PC端的互联网—>2000-2015移动端的互联网(3G 4G)—>2015至今 大数据的互联网(有数据并且产生价值)–>人工智能的互联网免费(百度指数)付费(数据堂、贵阳数据交易堂)

3.2.3爬虫工程师

3、3python做爬虫的优势

PHP : 对多线程、异步⽀持不太好
Java : 代码量⼤,代码笨重
C/C++ : 代码量⼤,难以编写
Python : ⽀持模块多、代码简介、开发效率⾼ (scrapy框架)

3、4爬虫的分类

3.4.1通用网络爬虫(传统搜索引擎百度、谷歌必须遵守robot协议)

3.4.2聚焦网络爬虫(有目的有选择的爬取数据)

3.4.3增量式网络爬虫(聚焦包括它,更新爬取信息)

3.4.4深层网络爬虫(看不见的数据)

4、几个概念

4.1 GET和POST

GET:查询的参数会在URL上显示出来

POST:查询的参数和需要提交的数据是隐藏在From表单里的,不会在URL地址上显现出来

4.2URL组成部分

URL: 统⼀资源定位符 https://new.qq.com/omn/TWF20200/TWF2020032502924000.html https: 协议 new.qq.com: 主机名可以将主机理解为⼀台名叫 news.qq.com 的机器。这 台主机在 qq.com 域名下 port 端⼝号: 43 /new.qq.com 在他的后⾯有个 :80是http的端口号43可以省略 TWF20200/TWF2020032502924000.html 访问资源的路径 #anchor: 锚点⽤前端在做⻚⾯定位的 注意 : 在浏览器请求⼀个url,浏览器会对这个url进⾏⼀个编码。(除英⽂字 ⺟、数字和部分标识其他的全部使⽤% 加 ⼗六进制码进⾏编码)
例如 : https://tieba.baidu.com/f?ie=utf8&kw=%E6%B5%B7%E8%B4%BC%E7%8E%8B&fr=search
%E6%B5%B7%E8%B4%BC%E7%8E%8B = 海贼王

4.3 User-Agent

记录⽤户的浏览器、操作系统等,为了让⽤户更好的获取HTML⻚⾯效果

4.4Refer

表明当前这个请求是从哪个url过来的。⼀般情况下可以⽤来做反爬的技术数据来源

4.5状态码

200 : 请求成功 301 : 永久重定向 302 : 临时重定向 403 : 服务器拒绝请求 404 : 请求失败(服务器⽆法根据客户端的请求找到资源(⽹⻚)) 500 : 服务器内部请求

5抓包工具

Python爬虫一:爬虫简介
Elements : 元素 ⽹⻚源代码,提取数据和分析数据(有些数据是经过特殊处 理的所以并不是都是准确的) Console : 控制台 (打印信息) Sources : 信息来源 (整个⽹站加载的⽂件) NetWork : ⽹络⼯作(信息抓包) 能够看到很多的⽹⻚请求