当前位置: 首页 > news >正文

python爬虫入门(一)之HTTP请求和响应

一、爬虫的三个步骤(要学习的内容)

1、获取网页内容 (HTTP请求、Requests库)

2、解析网页内容  (HTML网页结构、Beautiful Soup库)

3、存储或分析数据

b站学习链接:

【【Python+爬虫】爆肝两个月!拜托三连了!这绝对是全B站最用心(没有之一)的Python+爬虫公开课程,从入门到(不)入狱 !】 https://www.bilibili.co/video/BV1d54y1g7db/?share_source=copy_web&vd_source=7e5d8bc8e5429bc3a99a6b8e86b901f8

二、HTTP

1、什么是HTTP?

http: Hypertext Transfer Protocol(超文本传输协议)

      客户端和服务器之间的请求-响应协议

eg: 浏览器可看作一个服务端,在浏览器中输入网址,

浏览器就会向运行该网站的服务器发送请求,

然后等待服务器返回给浏览器响应

2、HTTP的两种请求方法

1、GET(获得数据)

大部分用get

2、POST(创建数据)

3、HTTP请求的组成结构

(1)请求行:

POST         / user / info ? new_user=true         HTTP / 1.1

方法类型            资源路径?查询参数             HTTP的协议版本

资源路径:指明要访问服务器的哪个资源

查询参数:写在?后面,传递给服务器额外的信息,不同信息之间用&分隔

eg: www.douban.com / movie /top250 ?start=75&filter=unwatched

      主机域名 (+资源路径)(+查询参数)== 网址

(2)请求头:

Host: www.douban.com  主机域名

User-Agent: curl /7.77.0  用来告知服务器客户端的相关信息

请求是什么东西发出来的,以及这个东西的版本

eg:  curl / 7.77.0(curl命令行工具发出的) 

       python-requests / 2.25.1 (python的requests库发出的)

Accept: */*  告诉服务器,客户端想接收的响应数据的类型

eg: 接受HTML:text / html

      接受HTML和JOSN:text / html, application / json (多种类型用逗号分隔开)

      接受任意类型:*/*

(3)请求体:客户端传给服务器的其他任意数据

(GET的请求体一般是空的)

{"username":"西瓜大侠",

"email":"3380958706@qq.com"}

简言之,HTTP请求由三部分组成:

请求行:用什么方法查询什么资源 + HTTP的版本

请求头:主机域名 + 客户端是什么及其版本 + 客户端想接受的响应类型 

            (where who what 服务器在哪儿  客户端是谁  客户端想要什么)

请求体:客户端的其他数据

4、HTTP响应的组成结构

(1)状态行:

HTTP / 1.1     200          OK

协议版本      状态码    状态消息

状态码和状态消息相对应:

2开头:表示请求成功

3开头:表示重定向,需要进一步的操作

4开头:表示客户端错误(请求不能被理解、请求未授权或404请求的资源不存在...)

5开头:表示服务器错误(出现问题或正在维护)

(2)响应头:包含一些告知客户端的信息

Date: Fri, 27 Jan 2023 02:10:48 GMT 生成相应的日期和时间

Content-Type: text/html; charset=utf-8 返回内容的类型及编码格式

(3)响应体:服务器想给客户端的数据内容

相关文章:

python爬虫入门(一)之HTTP请求和响应

一、爬虫的三个步骤(要学习的内容) 1、获取网页内容 (HTTP请求、Requests库) 2、解析网页内容 (HTML网页结构、Beautiful Soup库) 3、存储或分析数据 b站学习链接: 【【Python爬虫】爆肝两…...

华为OD机考题(HJ41 称砝码)

前言 经过前期的数据结构和算法学习,开始以OD机考题作为练习题,继续加强下熟练程度。有需要的可以同步练习下。 描述 现有n种砝码,重量互不相等,分别为 m1,m2,m3…mn ; 每种砝码对应的数量为 x1,x2,x3...xn 。现在要…...

Qt涂鸦板

Qt版本&#xff1a;Qt6 具体代码&#xff1a; 头文件 dialog.h #ifndef DIALOG_H #define DIALOG_H#include <QDialog>QT_BEGIN_NAMESPACE namespace Ui { class Dialog; } QT_END_NAMESPACEclass Dialog : public QDialog {Q_OBJECTpublic:Dialog(QWidget *parent n…...

C++_03

1、构造函数 1.1 什么是构造函数 类的构造函数是类的一种特殊的成员函数&#xff0c;它会在每次创建类的新对象时执行。 每次构造的是构造成员变量的初始化值&#xff0c;内存空间等。 构造函数的名称与类的名称是完全相同的&#xff0c;并且不会返回任何类型&#xff0c;也不…...

强化学习中的Double DQN、Dueling DQN和PER DQN算法详解及实战

1. 深度Q网络&#xff08;DQN&#xff09;回顾 DQN通过神经网络近似状态-动作值函数&#xff08;Q函数&#xff09;&#xff0c;在训练过程中使用经验回放&#xff08;Experience Replay&#xff09;和固定目标网络&#xff08;Fixed Target Network&#xff09;来稳定训练过程…...

前端八股文 说一说样式优先级的规则是什么?

标准的回答 CSS样式的优先级应该分成四大类 第一类 !important&#xff1a; &#x1f604;无论引入方式是什么&#xff0c;选择器是什么&#xff0c;它的优先级都是最高的。 第二类 引入方式&#xff1a; &#x1f604;行内样式的优先级要高于嵌入和外链&#xff0c;嵌入和外链…...

洞察国内 AI 绘画行业的璀璨前景

在科技的浪潮中&#xff0c;AI 绘画如同一颗璀璨的新星&#xff0c;正在国内的艺术与技术领域绽放出耀眼的光芒。 近年来&#xff0c;国内 AI 绘画行业发展迅猛&#xff0c;展现出巨大的潜力。随着人工智能技术的不断突破&#xff0c;AI 绘画算法日益精进&#xff0c;能够生成…...

socket编程

文章目录 套接字网路字节序列TCP和UDP套接字 本文章主要介绍Linux下套接字的相关接口&#xff0c;和一些基础知识。 套接字 所有网络通信的行为本质都是进程间进行通信&#xff0c;网络通信也是进程间通信&#xff0c;只不过是不同主机上的两个进程之间的通信。网络通信对于双…...

python自动移除excel文件密码(升级v2版本)

欢迎查看第一版 https://blog.csdn.net/weixin_45631815/article/details/140013476?spm1001.2014.3001.5502 一功能改进 此版本主要改进功能有以下: 直接可以调用函数实现可以尝试多个密码没有加密的文件进行保存,可以按实际业务进行改进.思路来源:java 面向对象设计模式.…...

深入MOJO编程语言的单元测试世界

引言 在软件开发的历程中&#xff0c;单元测试扮演着至关重要的角色。单元测试不仅帮助开发者确保代码的每个部分都按预期工作&#xff0c;而且也是代码质量和维护性的关键保障。本文将引导读者了解如何在MOJO这一假想编程语言中编写单元测试&#xff0c;尽管MOJO并非真实存在…...

Canvas:掌握颜色线条与图像文字设置

想象一下&#xff0c;用几行代码就能创造出如此逼真的图像和动画&#xff0c;仿佛将艺术与科技完美融合&#xff0c;前端开发的Canvas技术正是这个数字化时代中最具魔力的一环&#xff0c;它不仅仅是网页的一部分&#xff0c;更是一个无限创意的画布&#xff0c;一个让你的想象…...

打包导入pyzbar的脚本时的注意事项

目录 前言问题问题的出现解决 总结 本文由Jzwalliser原创&#xff0c;发布在CSDN平台上&#xff0c;遵循CC 4.0 BY-SA协议。 因此&#xff0c;若需转载/引用本文&#xff0c;请注明作者并附原文链接&#xff0c;且禁止删除/修改本段文字。 违者必究&#xff0c;谢谢配合。 个人…...

02-android studio实现下拉列表+单选框+年月日功能

一、下拉列表功能 1.效果图 2.实现过程 1&#xff09;添加组件 <LinearLayoutandroid:layout_width"match_parent"android:layout_height"wrap_content"android:layout_marginLeft"20dp"android:layout_marginRight"20dp"android…...

曹操的五色棋布阵 - 工厂方法模式

定场诗 “兵无常势&#xff0c;水无常形&#xff0c;能因敌变化而取胜者&#xff0c;谓之神。” 在三国的战场上&#xff0c;兵法如棋&#xff0c;布阵如画。曹操的五色棋布阵&#xff0c;不正是今日软件设计中工厂方法模式的绝妙写照吗&#xff1f;让我们从这个神奇的布阵之…...

谷粒商城学习笔记-逆向工程错误记录

文章目录 1&#xff0c;Since Maven 3.8.1 http repositories are blocked.1.1 在maven的settings.xml文件中&#xff0c;新增如下配置&#xff1a;1.2&#xff0c;执行clean命令刷新maven配置 2&#xff0c;internal java compiler error3&#xff0c;启动逆向工程报错&#x…...

FastAPI+SQLAlchemy数据库连接

FastAPISQLAlchemy数据库连接 目录 FastAPISQLAlchemy数据库连接配置数据库连接创建表模型创建alembic迁移文件安装初始化编辑env.py编辑alembic.ini迁移数据库 视图函数查询 配置数据库连接 # db.py from sqlalchemy import create_engine from sqlalchemy.orm import sessio…...

Android中的适配器,你知道是做什么的吗?

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD&#xff0c;日常还会涉及Android开发工作。 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起…...

GitHub详解:代码托管与协作开发平台

文章目录 一、GitHub简介二、GitHub的核心功能2.1 仓库&#xff08;Repository&#xff09;2.2 版本控制与分支&#xff08;Branch&#xff09;2.3 Pull Request2.4 Issues与Projects2.5 GitHub Actions 三、GitHub的使用方法3.1 注册与登录3.2 创建和管理仓库3.3 使用Git进行代…...

【植物大战僵尸杂交版】获取+存档插件

文章目录 一、还记得《植物大战僵尸》吗&#xff1f;二、在哪下载&#xff0c;怎么安装&#xff1f;三、杂交版如何进行存档功能概述 一、还记得《植物大战僵尸》吗&#xff1f; 最近&#xff0c;一款曾经在15年前风靡一时的经典游戏《植物大战僵尸》似乎迎来了它的"文艺复…...

BP神经网络与反向传播算法在深度学习中的应用

BP神经网络与反向传播算法在深度学习中的应用 在神经网络的发展历史中&#xff0c;BP神经网络&#xff08;Backpropagation Neural Network&#xff09;占有重要地位。BP神经网络通过反向传播算法进行训练&#xff0c;这种算法在神经网络中引入了一种高效的学习方式。随着深度…...

直接可用4轴插补算法库,STM32的DDA插补联动与梯形加减速算法代码

可以直接使用的4轴插补算法库&#xff0c;不是丢给你一堆gr1b或者写字机或者3d打印的开源代码&#xff0c;本运控库上项目级别的&#xff0c;需要添加在自己的项目中&#xff0c;不支持gm码&#xff0c;只有运动控制核心代码&#xff0c;可以添加在自己项目中的&#xff0c;stm…...

ESP32/ESP8266轻量级二进制RPC库设计与实践

1. 项目概述esp_rpc是一个专为 ESP8266 和 ESP32 平台深度优化的轻量级远程过程调用&#xff08;Remote Procedure Call, RPC&#xff09;库。其设计哲学直指嵌入式资源受限场景的核心矛盾&#xff1a;在极小内存占用&#xff08;ROM/RAM 双敏感&#xff09;与可靠跨设备交互之…...

氢能多能利用调度系统 -NSGA-II多目标优化研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

杰理之开mic关mic复位问题处理【篇】

开PC模式...

政府科技管理部门如何优化区域科技创新治理?

观点作者&#xff1a;科易网-国家科技成果转化&#xff08;厦门&#xff09;示范基地 摘要 在数智时代背景下&#xff0c;区域科技创新治理的复杂性显著提升&#xff0c;传统治理模式面临资源分散、服务碎片化、匹配效率低等核心痛点。政府科技管理部门亟需借助“数智产品共享…...

计算机毕业设计:Python汽车销量全栈分析系统 Flask框架 可视化 机器学习 AI 大模型 大数据(建议收藏)✅

1、项目介绍 技术栈&#xff1a;Python语言、Flask框架、ECharts可视化库、MySQL数据库、机器学习算法 功能模块&#xff1a;数据概况展示模块多维度可视化分析模块销量预测模块生产计划辅助模块系统管控模块 项目介绍&#xff1a;本项目为汽车销量可视化分析与预测系…...

如何一步一步地获取和风天气的天气数据(2026版)

如何一步一步地获取和风天气的天气数据&#xff08;2026版&#xff09;一、和风天气核心优势二、前期准备2.1 注册和风天气开发者账号2.2 创建项目并获取认证密钥&#xff08;API 项目ID/JWT Token&#xff09;2.2.1 登录控制台 → 进入项目管理 → 点击创建项目。2.2.2 填写项…...

汇编VS高级语言:从硬件操控到高效开发

汇编语言和Visual Studio&#xff08;VS&#xff09;的主要区别如下&#xff1a;核心区别对比维度汇编语言Visual Studio本质一种低级编程语言&#xff0c;直接操作硬件一种集成开发环境&#xff08;IDE&#xff09;&#xff0c;支持多种高级语言使用场景嵌入式系统、驱动开发、…...

如何通过GDScript游戏开发入门成为独立游戏开发者

如何通过GDScript游戏开发入门成为独立游戏开发者 【免费下载链接】learn-gdscript Learn Godots GDScript programming language from zero, right in your browser, for free. 项目地址: https://gitcode.com/gh_mirrors/le/learn-gdscript 对于许多游戏爱好者来说&am…...

2026届必备的六大AI写作助手推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在现在这个人工智能生成内容已经被广泛运用的当下&#xff0c;降低AIGC检测概率的工具顺势冒…...