第1章-爬虫简介(http请求)

2023-11-09

一、通讯协议

每一个应用程序都有一个独立的标识–端口(逻辑端口号)

HTTP:超文本传输协议,默认端口80

二、网络模型

在这里插入图片描述
https=http+ssl,默认端口443
在这里插入图片描述
SSL:(Secure Socket Layer,安全套接字层),为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。

三、Http请求与响应

在这里插入图片描述

3.1 Http通信

  1. 当⽤户在浏览器的地址栏中输⼊⼀个URL并按回⻋键之后,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种⽅法。
  2. 当我们在浏览器输⼊URL http://www.baidu.com 的时候,浏览器发送⼀个Request请求去获取 http://www.baidu.com 的html⽂件(即网页源码),服务器把Response⽂件对象发送回给浏览器。
    在这里插入图片描述
  3. 浏览器分析Response中的 HTML,发现其中引⽤了很多其他⽂件,⽐如Images⽂件,CSS⽂件,JS⽂件。 浏览器会⾃动再次发送Request去获取图⽚,CSS⽂件,或者JS⽂件。
  4. 当所有的⽂件都下载成功后,⽹⻚会根据HTML语法结构,完整的显示出来了。

3.2 Http请求

HTTP请求到服务器的请求消息,包括以下格式:
请求⾏、请求头部、空⾏、请求数据
在这里插入图片描述
在这里插入图片描述

3.3 Http请求方法

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

四、几个概念

4.1 GET和POST

GET : 查询参数都会在URL上显示出来,不对服务器资源产生影响(例如:上传会产生影响)
在这里插入图片描述

POST : 查询参数和需要提交数据是隐藏在Form表单⾥的,不会在URL地址上显示出来(例如:有道翻译内容,账号登录信息)
在这里插入图片描述

4.2 URL组成部分

URL: 统⼀资源定位符
https://news.qq.com/omn/TWF20200/TWF2020032502924000.html
https: 网络协议
news.qq.com: 主机名,可以将主机理解为⼀台名叫 news.qq.com 的机器。这台主机在 qq.com 域名下
port 端⼝号: 80 , /new.qq.com 在他的后⾯有个 :80 可以省略
TWF20200/TWF2020032502924000.html 访问资源的路径

#anchor: 锚点⽤前端在做⻚⾯内容位置定位的
在这里插入图片描述

注意 : 在浏览器请求⼀个url,浏览器会对这个url进⾏⼀个编码。(除英⽂字⺟、数字和部分标识,其他的全部使⽤% 加 ⼗六进制码进⾏编码,其中3个%是1个汉字)
例如 : 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
  • 如果不添加UA会被认为是爬虫–网站用于反爬

Mozilla :是一个技术组织,指定在开发互联网相关的应用。 Mozilla是一个自由软件社区,以生产Firefox web浏览器而闻名。Mozilla社区使用、开发、传播和支持Mozilla产品,因此专门推广自由软件和开放标准,只有少数例外。谷歌浏览器部分内容也是Mozilla开发的。

4.4 Refer

表明当前这个请求是从哪个url过来的,按照正常人的操作都是一步一步向下点击的,如果没有会被服务器认为是爬虫–网站用于反爬
在这里插入图片描述

4.5 状态码

200 : 请求成功
301 : 永久重定向
在这里插入图片描述

302 : 临时重定向
在这里插入图片描述

403 : 服务器收到了响应,但拒绝请求(如:反爬)
404 : 请求失败(服务器⽆法根据客户端的请求找到资源(⽹⻚))
500 : 服务器内部请求

4.6 抓包工具

浏览器自带抓包工具:
在这里插入图片描述

  • Elements : 元素(⽹⻚源代码),抓取数据和分析数据(有些数据是经过特殊处理的(Elements可能是通过浏览器后期渲染出来的结果),所以并不是都是准确的,要确保抓取和分析的数据在“Elements”和“网页源代码”中同时都存在,否则需要通过Network进行抓取和分析)

  • Console : 控制台 (做前端开发时用于打印和测试信息)
    在这里插入图片描述

  • Sources : 信息来源 (整个⽹站加载的⽂件,包含图片等)

  • NetWork : ⽹络⼯作(信息抓包) 能够看到很多的⽹⻚请求

4.6 robots协议

robots协议也叫robots.txt(统一小写):是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络爬虫,此网站中的哪些内容是不应被爬取的,哪些是可以被爬取的。

因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。
在这里插入图片描述

五、爬虫介绍

1、爬虫存在的意义:
为其他程序提供数据源 如搜索引擎(百度、Google等)、数据分析、⼤数据等等

2、企业获取数据的方式:

  • 公司⾃有的数据
  • 第三⽅平台购买的数据 (百度指数、数据堂)
  • 爬⾍爬取的数据

3、Python 做爬⾍的优势:

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

4、爬⾍的分类:

  • 通⽤⽹络爬⾍— 例如 baidu google yahu
  • 聚焦⽹络爬⾍—根据既定的⽬标有选择的抓取某⼀特定主题内容
  • 增量式⽹络爬⾍—指对下载⽹⻚采取增量式的更新和只爬新产⽣的或者已经发⽣变化的数据
  • 深层⽹络爬⾍— 指那些⼤部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有⽤户提交⼀些关键词才能获得的web⻚⾯, 例如 ⽤户登录注册才能访问的⻚⾯
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第1章-爬虫简介(http请求) 的相关文章

随机推荐

  • 【C51】单片机芯片之——图解74HC595

    第一部部分用于快速查阅使用 详细的使用见文章第二部分 引脚图 14脚 DS SER 串行数据输入引脚 13脚 OE 输出使能控制脚 它是低电才使能输出 所以接GND 12脚 RCK 存储寄存器时钟输入引脚 上升沿时 数据从移位寄存器转存带存
  • Maven依赖冲突

    An attempt was made to call a method that does not exist 依赖冲突完整报错如下 Description An attempt was made to call a method tha
  • 字符串04--左旋转字符串

    字符串04 左旋转字符串 jz43 题目概述 解析 参考答案 注意事项 说明 题目概述 算法说明 汇编语言中有一种移位指令叫做循环左移 ROL 现在有个简单的任务 就是用字符串模拟这个指令的运算结果 对于一个给定的字符序列S 请你把其循环左
  • express和koa中的超时处理

    从某个话题中得到的灵感 这里做一个分享 http cnodejs org topic 592fdc2f03dba3510d8a62a0 59364c3b538dbcaa6bc7dd48 楼主遇到一个问题 如何管理express中的超时 ex
  • BigDecimal 精度问题

    BigDecimal 精度问题 在使用BigDecimal过程中 暂时遇到两个问题 都是精度问题 一个是精度丢失 一个是精度显示问题 精度丢失 BigDecimal创建对象有很多种方式 通过double类型去声明bigdecimal对象时
  • Hyperledger Fabric架构设计

    目录 1 逻辑架构 答疑 什么叫做背书策略 2 运行时架构 答疑 什么是锚节点 1 逻辑架构 Hyperledger Fabric从1 X开始 在扩展性及安全性方面有了很大的提升 且新增了诸多特性 多通道 支持多通道 提高隔离安全性 可插拔
  • Diffusion Models 简单代码示例

    一 关于Diffusion 模型的简单介绍 首先diffusion模型和VAE Flow Gan等模型类似 均属于生成模型 可以和GCN CNN等其他深度学习网络相结合 完成特定的生成任务 如下图 基于 GAN 生成模型 基于 VAE 的生
  • 卷积核的类型及其作用

    目录 一 堆叠小卷积核 1 为什么要用大卷积核代替小卷积核 2 为什么堆叠小卷积核参数量要比大卷积核少 3 输入输出图片通道数一致时堆叠小卷积核参数量才更小 4 感受野计算 二 空洞卷积 能否让固定大小的卷积核看到更大范围的区域 三 非对称
  • c语言中的std模版用法,C++模板template用法小结(推荐)

    引言 模板 Template 指C 程序设计设计语言中采用类型作为参数的程序设计 支持通用程序设计 C 的标准库提供许多有用的函数大多结合了模板的观念 如STL以及IO Stream 函数模板 在c 入门中 很多人会接触swap int i
  • vue的安全隐患(一)

    vue安全方面的知识 第一原则永远不要使用不信任的模板 在vue中使用不信任的模板这等于允许在应用程序中执行任意的javascript代码 甚至更糟糕的是服务器可能会被攻破 比如在 template sertppp 不要这样做因为vue的模
  • 强化学习的几种环境介绍

    前言 对于强化学习相关的几种环境介绍 主要包括Mini world Gym maze Grid world gym minigrid Mini world https github com maximecb gym miniworld Mi
  • 用c语言设计加减乘除自动出题程序,用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除....

    include include stdlib h define N 10 void fun int a b t char c scanf d a scanf c c scanf d b if c c c c c if c t a b if
  • 关于unique case和priority case语法

    SystemVerilog对于case casez casex语句新增了两个特殊的修饰符 unique及priority 其语法规则如下 unique case
  • 疫情信息获取。

    爬取目标 腾讯新闻 疫情数据 确定信息 在目标网页按F12 在全局数据中寻找 发现有目标数据 接下来在Network中寻找数据并在Headers中获得链接地址 也可以点击搜索查找 较为方便 省份数据和全球数据也是同样的方法 注意图二 最终确
  • 【JS逆向】之webpack逆向实战

    声明 本文只作学习研究 禁止用于非法用途 否则后果自负 如有侵权 请告知删除 谢谢 目标网站 aHR0cHM6Ly8xNTE0NjQ2LmNvbS9sb2dpbg 引言 webpack对于有研究过人的来说就是 难度并不是很高 但是因为web
  • xss过滤绕过方法总结

    xss注入常用语句 1 2 img src 3 img src 4
  • JS 将数组写入表单

    将数据写入表单 var rowData 1 2 3 function insertToForm rowData if rowData length lt 1 alert 没有数据 else var form formID for var i
  • C++中的类模板定义及实例化

    转载自Out man 文章目录 一 类模板定义及实例化 定义一个类模板 类模板实例化 二 类模板的成员函数 一 类模板定义及实例化 定义一个类模板 template
  • 关于C/C++运算符优先级问题探讨

    最近在知乎上看到一个c c 运算符连写的问题 引发了诸多网友的讨论 具体内容如下图 乍一看 这句代码很长 确实有些让人糊涂 尤其是学习过python的同学 对此写法不太理解 今天我们一起来说一说 优先级 在c语言的表达式中 如果存在多个运算
  • 第1章-爬虫简介(http请求)

    第1章 爬虫简介 一 通讯协议 二 网络模型 三 Http请求与响应 3 1 Http通信 3 2 Http请求 3 3 Http请求方法 四 几个概念 4 1 GET和POST 4 2 URL组成部分 4 3 User Agent 户代理