1.通讯协议

1.1端口

我们想要进⾏数据通讯分⼏步?

  • 找到对⽅ip
  • 数据要发送到对⽅指定的应⽤程序上。为了标识这些应⽤程序,所以给这些 ⽹络应⽤程序都⽤数字进⾏了标识。为了⽅便称呼这个数字,叫做 端⼝。这⾥ 的端⼝ 我们⼀般都叫做 ‘逻辑端⼝’
  • **定义通讯规则。**这个通讯规则我们⼀般称之为协议

1.2通讯协议

  • 国际组织定义了通⽤的通信协议 TCP/IP协议
  • 所谓协议就是指计算机通信⽹络中两台计算机之间进⾏通信所必须共同遵守 的规定或规则
  • HTTP⼜叫做超⽂本传输协议(是⼀种通信协议) HTTP 它的端⼝是 80

2.网络模型

python-爬虫基础(01)
后期更新了新的参考模型 TCP/IP参考模型
python-爬虫基础(01)

2.1 HTTPS是什么呢?

  • https=http+ssl,顾名思义,**https是在http的基础上加上了SSL保护壳,**信 息的加密过程就是在SSL中完成的 https,是以安全为⽬标的HTTP通道,简单讲是HTTP的安全版。
  • 即HTTP下 加⼊SSL层,HTTPS的安全基础是SSL

2.2SSL怎么理解

  • SSL也是⼀个协议主要⽤于web的安全传输协议
  • python-爬虫基础(01)

2.3http请求与响应

HTTP通信由两部分组成: 客户端请求消息服务器响应消息
python-爬虫基础(01)

  • 当⽤户在浏览器的地址栏中输⼊⼀个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-爬虫基础(01)
⼀个典型的HTTP请求示例
python-爬虫基础(01)
请求⽅法
根据HTTP标准,HTTP请求可以使⽤多种请求⽅法。

  • 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这些 键值对。
序号 方法 描述
1 GET 请求指定的⻚⾯信息,并返回实 体主体。
2 HEAD 类似于get请求,只不过返回的 响应中没有具体的内容,⽤于获 取报头
3 POST 向指定资源提交数据进⾏处理请 求(例如提交表单或者上传⽂ 件),数据被包含在请求体中。 POST请求可能会导致新的资源 的建⽴和/或已有资源的修改。
4 PUT 从客户端向服务器传送的数据取 代指定的⽂档的内容
5 DELETE 请求服务器删除指定的⻚⾯。
6 CONNECT HTTP/1.1协议中预留给能够将连 接改为管道⽅式的代理服务器。
7 OPTIONS 允许客户端查看服务器的性能。
8 TRACE 回显服务器收到的请求,主要⽤ 于测试或诊断。

3.爬虫介绍

3.1什么是爬虫

  • 简单⼀句话就是代替⼈去模拟浏览器进⾏⽹⻚操作

3.2为什么需要爬虫

  • 为其他程序提供数据源 如搜索引擎(百度、Google等)、数据分析、⼤数据等 等

3.3 企业获取数据的方式

  • 为其他程序提供数据源 如搜索引擎(百度、Google等)、数据分析、⼤数据等 等
  • 第三⽅平台购买的数据 (百度指数、数据堂)
  • 第三⽅平台购买的数据 (百度指数、数据堂)

3.4 Python 做爬⾍的优势

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

3.5 爬虫的分类

  • 通⽤⽹络爬⾍ 例如 baidu google yahu
  • 聚焦⽹络爬⾍: 根据既定的⽬标有选择的抓取某⼀特定主题内容
  • 增量式⽹络爬⾍: 指对下载⽹⻚采取增量式的更新和只爬⾏新产⽣的或者已经 发⽣变化的⽹⻚爬⾍
  • 深层⽹络爬⾍: 指那些⼤部分内容不能通过静态链接获取的、隐藏在搜索表单 后的,只有⽤户提交⼀些关键词才能获得的web⻚⾯ 例如 ⽤户登录注册才能 访问的⻚⾯

4.几个概念

4.1GET和POST

  • GET : 查询参数都会在URL上显示出来
  • POST : 查询参数和需要提交数据是隐藏在Form表单⾥的,不会在URL地址上 显示出来

4.2URL组成部分

  • URL: 统⼀资源定位符
  • https://new.qq.com/omn/TWF20200/TWF2020032502924000.html
  • https: 协议
  • new.qq.com: 主机名可以将主机理解为⼀台名叫 news.qq.com 的机器。这 台主机在 qq.com 域名下
  • port 端⼝号: 80 /new.qq.com 在他的后⾯有个 :80 可以省略
  • TWF20200/TWF2020032502924000.html 访问资源的路径
  • #anchor: 锚点⽤前端在做⻚⾯定位的
  • 注意 : 在浏览器请求⼀个url,浏览器会对这个url进⾏⼀个编码。(除英⽂字 ⺟、数字和部分标识其他的全部使⽤% 加 ⼗六进制码进⾏编码)
    例如 : https://tieba.baidu.com/f?ie=utf- 8&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⻚⾯效果
  • User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
  • Mozilla Firefox:(Gecko内核)

4.4Refer

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

4.5 状态码

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

5.抓包工具

python-爬虫基础(01)

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

相关文章:

  • 2022-02-17
  • 2022-02-10
  • 2022-02-08
  • 2021-08-17
  • 2022-02-17
  • 2021-10-13
猜你喜欢
  • 2021-11-05
  • 2021-08-08
  • 2022-01-03
  • 2021-09-02
  • 2021-08-10
相关资源
相似解决方案