Python爬虫:http和https介绍及请求

HTTP和HTTPS

学习目标:

  1. 记忆 http、https的概念和区别
  2. 记忆 浏览器发送http请求的过程
  3. 记忆 http请求头的形式
  4. 记忆 http响应头的形式
  5. 了解 http响应状态码

1 为什么要复习http和https

发送请求,获取响应的过程中 就是发送http或https的请求,获取http或https的响应

2 http和https的概念

  • HTTP
    • 超文本传输协议
    • 默认端口号:80
  • HTTPS
    • HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协议
    • 默认端口号:443

HTTPS比HTTP更安全,但是性能更低

3 浏览器发送HTTP请求的过程(重点理解)

在这里插入图片描述

3.1 http请求的过程

  1. 浏览器先向地址栏中的url发起请求,并获取相应

  2. 在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应

  3. 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应

  4. 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染

3.2 注意:

但是在爬虫中,爬虫只会请求url地址,对应的拿到url地址对应的响应(该响应的内容可以是html,css,js,图片等)

浏览器渲染出来的页面和爬虫请求的页面很多时候并不一样

所以在爬虫中,需要以url地址对应的响应为准来进行数据的提取

4 HTTP请求的形式

在这里插入图片描述

这个图大家见过很多次,那么在浏览器headers中,点击view source来具体观察其中的请求行,请求头部和请求数据是什么样子的

5 HTTP常见请求头

  1. Host (主机和端口号)
  2. Connection (链接类型)
  3. Upgrade-Insecure-Requests (升级为HTTPS请求)
  4. User-Agent (浏览器名称)
  5. Accept (传输文件类型)
  6. Referer (页面跳转处)
  7. Accept-Encoding(文件编解码格式)
  8. Cookie (Cookie)
  9. x-requested-with :XMLHttpRequest (表示该请求是Ajax异步请求)

6 HTTP重要的响应头

  1. Set-Cookie (对方服务器设置cookie到用户浏览器的缓存)

7 响应状态码(status code)

常见的状态码:

  • 200:成功
  • 302:临时转移至新的url
  • 307:临时转移至新的url
  • 404:找不到该页面
  • 500:服务器内部错误
  • 503:服务不可用,一般是被反爬

小结

  1. 记忆 http、https的概念和区别:
  • http: 超本文传输协议
  • https: HTTP + SSL,即带有安全套接字层的超本文传输协议
  1. 记忆 浏览器发送http请求的过程:
  • 浏览器先向地址栏中的url发起请求,并获取相应
  • 在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
  • 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应
  • 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改
  1. 记忆 http请求头的形式:
GET /item/503/1227315?fr=aladdin HTTP/1.1
Host: www.baidu.com
......
  1. 记忆 http响应头的形式 :
HTTP/1.1 200 OK
Connection: keep-alive
......
  1. 了解 http响应状态码
  • 200:成功
  • 302:临时转移至新的url

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DMA 链表模式(LLI)深度解析

在进行一次 DMA 读或者写的时候,可以配置多个链表,从而当一个链表的数据传输完成时,会跳到下一个链表的起始地址,并继续传输数据,直到链表的下一个地址为 0。如果 DMA 使能了完成中断,则当 DMA 发送或者接收…

程序计数器介绍

程序计数器是计算机处理器中的寄存器,它包含当前正在执行的指令的地址(位置)。当每个指令被获取,程序计数器的存储地址加一。在每个指令被获取之后,程序计数器指向顺序中的下一个指令。当计算机重启或复位时,程序计数器通常恢复到…

java微服务技术选型,Java学习的三个终极问题及学习路线规划

前言 在网络技术中基于浏览器的B/S结构无论在PC端还是手机端都充当着至关重要的角色。 PC端自不必说,手机中很多应用虽然是以APP的形式存在,但它采用的还是B/S结构。如今日头条、微信的朋友圈等,这些应用在内部封装了浏览器,后端…

宠物的异味,用空气净化器可以解决吗?宠物空气净化器品牌推荐

养猫的人都了解,一个养猫家庭的环境卫生和气味问题与主人的关系密切相关。主人的勤劳程度和对卫生的重视程度直接影响着家中的气味。尽管主人通常会经常更换猫砂,但有时候仍然会存在一些难闻的气味。事实上,忙碌的猫主人可能会因为没有足够的…

MySQL Strict Mode is not set for database connection ‘default‘

在使用 DJango 框架执行迁移文件的命令时,可以看到出现如下警告: (ll_env) D:\workspace\workspace-mengll\learning-log>python manage.py migrate System check identified some issues: WARNINGS: ?: (mysql.W002) MySQL Strict Mode is not set …

【yolov8自带脚本划分数据集】yolov8自己数据集训练

1. 命令 ultralytics.data.utils.autosplit(pathDATASETS_DIR / coco8/images, weights(0.9, 0.1, 0.0), annotated_onlyFalse)from ultralytics.data.utils import autosplitautosplit( path"path/to/images",weights(0.9, 0.1, 0.0), # (train, validation, test)…

利用Python爬取高德地图全国地铁站点信息

利用Python中的requests库进行地铁站点信息的获取,同时将数据保存在本机excel中 # 首先引入所需要的包 import requests from bs4 import BeautifulSoup import pandas as pd import json# 发送 GET 请求获取网页内容 url http://map.amap.com/subway/index.html response r…

腾讯云服务器99元一年是真的吗?又降价,现在只要61元

腾讯云服务器99元一年是真的吗?又降价,现在只要61元。腾讯云服务器多少钱一年?61元一年起,2核2G3M配置,腾讯云2核4G5M轻量应用服务器165元一年、756元3年,4核16G12M服务器32元1个月、312元一年,…

LiveGBS流媒体平台GB/T28181功能-集中录像存储前端设备录像回看解决方案设备录像|云端录像|实时录像说明

LiveGBS集中录像存储前端设备录像回看解决方案设备录像|云端录像|实时录像说明 1、平台概述2、视频录像2.1、设备录像2.1.1、存储位置2.1.1.1、下级硬件设备2.1.1.2、下级国标平台 2.1.2、页面操作2.1.2.1、国标设备2.1.2.1.1、查看通道2.1.2.1.1.1、设备录像 2.1.2.1.2、配置中…

分布式事务(SeataClient)

问题场景 元数据 库存 100订单记录为空下单操作 @AutowiredRestTemplate restTemplate;/*** 下单** @return*/@Transactional // 开启事务 异常后触发数据库回滚操作@Overridepublic Order create(Order order) {// 插入订单orderMapper.insert(order);// 扣减库存 MultiValu…

前缀和+哈希表:联手合击Leetcode 560.和为k的子数组

题目 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2: 输入:nums [1,2…

IP劫持的危害及应对策略

随着互联网的发展,网络安全问题日益凸显,其中IP劫持作为一种常见的网络攻击手段,对个人和企业的信息安全造成了严重的威胁。IP数据云将分析IP劫持的危害,并提出相应的应对策略。 IP地址查询:IP数据云 - 免费IP地址查询…

Android开发经典实战,Android面试题目

关于Android的近况 大家都知道,今年移动开发不那么火热了,完全没有了前两年Android开发那种火热的势头,如此同时,AI热火朝天,很多言论都说Android不行了。其实不光是Android,iOS也有类似的言论。 那么到底…

java多线程编程(四)-----线程池

一.线程池的介绍 java中的池是非常重要的思想方法,比如内存池,进程池,连接池,常量池等等。本篇重点介绍java中的线程池。这里的这些池的概念都是一样的,比如做饭的时候,有烧水,切菜&#xff0c…

[动态规划]---part2

前言 作者:小蜗牛向前冲 专栏:小蜗牛算法之路 专栏介绍:"蜗牛之道,攀登大厂高峰,让我们携手学习算法。在这个专栏中,将涵盖动态规划、贪心算法、回溯等高阶技巧,不定期为你奉上基础数据结构…

【学习】torchvision.datasets.ImageFolder()

在分类任务中,数据集文件存储往往是如下形式: - train- class1- image1.jpg- image2.jpg...- class2- image1.jpg- image2.jpg......此时,我们想要获取图片和标签,标签即为文件名(class1、class2…) 可以使…

【DevSecOps】2024 年需要警惕的 10 大 Web 应用程序安全威胁

【DevSecOps】2024 年需要警惕的 10 大 Web 应用程序安全威胁 由于 2023 年出现了许多创新,我们之前所了解的许多内容都发生了巨大变化;随着其中一些重大变化,威胁格局也发生了转变,一些旧威胁减少了,一些新威胁增加了。 技术每天都在不断变化,当我们谈论技术和相关威胁…

AI大模型:创新前沿的探索之路

AI大模型一直被视为人工智能领域的创新前沿,它们拥有强大的计算能力和学习能力,能够在各种复杂的任务中表现出色。随着技术的不断进步,越来越多的研究者和企业开始投入到AI大模型的研发和应用中,希望能够探索出更多的可能性。 在…

Tomcat基础与Nginx的动静分离

一、TOMCAT基础功能 (一)自动解压war包 在配置文件中讲到,当接受到请求后,会匹配符合要求的Host,在配置文件中的Host只有一个,且规定了自动解压war包 自动解压war包 .war:WebApp打包,类zip格…

stl的基本知识学习

1.vector: 2.set: 3.map: 4.栈: 5.队列: 6. unordered_map与unordered_set: 7. 位运算: 8.cctype: 导图: