python爬虫02-requests库使用01

目录

1、requests库简介

2、requests库-安装

3、requests库-使用

3.1 导入模块

3.2 发送请求

3.3 requests库常用方法

3.4 访问控制参数kwargs

 4、请求返回对象 Response

5、requests访问时的可能异常

1、requests库简介

  • requests是一个http的第三方请求库,发送http请求,并获取响应结果;

2、requests库-安装

pip install requests
#使用清华园镜像安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

3、requests库-使用

3.1 导入模块

import requests

3.2 发送请求
import requests  # 安装好requests后,导入模块
url = 'https://www.baidu.com'
headers = {'content': 'text/html;charset=utf-8'}
resp = requests.get(url, headers)
print(resp)  # <Response [200]>  代表OK
resp.encoding = 'utf-8' # 定义响应对象的编码
print(resp.text)# 打印网页数据
resp.close()  # 爬完数据,请务必要关闭
3.3 requests库常用方法
方法作用
requests.request(method,url,**kwargs)

创建和发送一个请求,通用方案

requests.get()发送get请求,对应http的get方法
requests.post()发送post请求,对应http的post方法
requests.head()        获取网页的头信息,对应http的HEAD方法
3.4 访问控制参数kwargs

resp = requests.request('get',url, **kwargs)

kwargs参数作用
params字典类型,作为参数增加到url ; get方法参数传递
data

字典 / 字节序列 / 文件对象,作为Requests对象的内容;

post方法参数传递;

json

json格式的数据,作为Requests的内容;

前后端分离以json参数上传数据;

headers                字典类型,HTTP定制头,例如设置User-Agent;
cookies        字典或者CookieJar,Request中的cookie
auth元组,支持HTTP认证功能;
files传输文件,字典类型; key:参数名,value:文件对象;
timeout设定超时事件,单位为秒;
proxies字典类型,设定访问代理服务器;
allow_redirects是否允许重定向,默认:True;
stream

是否以字节流形式获取内容并下载;

下载文件时候使用;

verify是否验证SSL证书,默认为True;
cert本地SSL证书路径;

 4、请求返回对象 Response

resp = requests.request('get',url, **kwargs);

 resp:响应对象,一个包含服务器资源的响应对象;

属性作用
resp.request获取Http请求对象  ;返回: <PreparedRequest [GET]>
resp.status_codehttp请求返回状态码 ; 200表示成功;
resp.texthttp响应的字符串形式;
resp.contenthttp响应的二进制形式;例如:图片,音频,视频等;
resp.encoding从http的header中响应编码方法;
resp.apparent_encoding从内容中分析响应内容编码方式;(备选编码方式)
方法作用
resp.raise_for_status()该方法内部判断resp.status_code == 200,不等则抛异常
resp.json()

得到对应的json格式数据; 

补充:Python有json模块,可以实现字符串和json的转换;

注意:★★★★★

  • encoding属性: 如果header中不存在charset,则认为是ISO-8859-1编码;
  • text属性:根据encoding属性的编码方式显示网页内容;
  • 当编码方式不一致,可能会出现乱码;
  • apparent_encoding属性:是根据网页内容分析出的编码方式;看做encoding属性的备选;

5、requests访问时的可能异常

异常说明
requests.ConnectionError网络连接异常,如:拒绝连接,DNS查询失败等
requests.HTTPError        http错误异常
requests.URLRequiredURL缺失异常
requests.ToolManyRedirects超过最大重定向次数,产生重定向异常
requests.ConnectTimeout连接远程服务器超时异常
requests.Timeout请求URL超时,产生超时异常

response对象提供了一个raise_for_status()方法,该方法内部对status_code进行判断,如果状态码不是200 ,则抛出HttpError异常;

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

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

相关文章

Seata TC端协调全局事务

1、Seata server注册器 //来自RM分支事务注册 super.registerProcessor(MessageType.TYPE_BRANCH_REGISTER, onRequestProcessor, messageExecutor); //开启全局事务 super.registerProcessor(MessageType.TYPE_GLOBAL_BEGIN, onRequestProcessor, messageExecutor); //提交全…

QEMU源码全解析 —— PCI设备模拟(9)

接前一篇文章&#xff1a; 上一回介绍了虚拟机如何通过北桥的MMIO来读写PCI设备的配置空间。PCI设备的配置空间中有MMIO的地址&#xff0c;也就是BAR信息&#xff0c;里面存放有BAR的基址&#xff0c;虚拟机可以通过读写这些BAR来与设备通信。然而&#xff0c;QEMU在设备初始化…

crackmapexec工具详解

下载地址&#xff1a;https://github.com/Porchetta-Industries/CrackMapExec wiki&#xff1a;https://www.crackmapexec.wiki/ 1.安装&#xff08;MAC&#xff09; 1.1.python3.9 pipx 安装&#xff08;运行软件有警告&#xff0c;推荐 python3.11 pipx 安装&#xff09; …

记录下载安装rabbitmq(Linux) 并整合springboot--详细版(全)

下载rabbitmq&#xff08;Linux&#xff09;&#xff1a; erlang压缩包&#xff1a; https://share.weiyun.com/TGhfV8eZ rabbitMq-server压缩包&#xff1a; https://share.weiyun.com/ZXbUwWHD &#xff08;因为RabbitMQ采用 Erlang 实现的工业级的消息队列(MQ)服务器&#…

五、带登录窗体的demo

做了一个简单的带登录窗体的demo&#xff0c;有用户名和密码不能为空的验证&#xff0c;原理是在main.cpp的主函数入口处&#xff1a; 1、将默认的MainWindow主窗体注释。 2、新建一个formlogin登录窗体&#xff0c;在主函数中先运行登录窗体。 3、在登录窗体中引用MainWind…

Redis学习指南(7)-Redis的字符串类型介绍

字符串类型特点 Redis的字符串类型是一种简单而灵活的数据结构&#xff0c;其特点如下&#xff1a; 任意数据类型: 字符串类型可以存储任意数据&#xff0c;包括文本、二进制数据等。直接访问和修改: 可以直接通过键名访问和修改整个字符串&#xff0c;而不需要像其他数据结构…

C++ 并发编程 | 管理线程

一、管理线程 1、启动线程 线程是通过构造std::thread对象来开始的&#xff0c;该对象指定了线程上要运行的任务&#xff0c;std::thread可以与任何可调用类型一起工作&#xff0c;例如&#xff1a; #include <iostream> #include <thread> using namespace std;v…

LeetCode第152题 - 乘积最大子数组

题目 解答 public class Solution {public int maxProduct(int[] nums) {if (nums null || nums.length 0) {return 0;}if (nums.length 1) {return nums[0];}int max nums[0];int min nums[0];int res nums[0];for (int i 1; i < nums.length; i) {int tmp max;m…

【算法题】51. N 皇后

题目 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方案。 …

ZZULIOJ 1126: 布尔矩阵的奇偶性

题目描述 一个布尔方阵具有奇偶均势特性&#xff0c;当且仅当 每行、每列总和为偶数&#xff0c;即包含偶数个1。如下面这个4*4的矩阵就具有奇偶均势特性&#xff1a; 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 编写程序&#xff0c;读入一个n阶方阵并检查它是否具有奇偶均势特性。如果…

杨中科 .NETCORE EFCORE 第一部分 基本使用

一 、什么是EF Core 什么是ORM 1、说明: 本课程需要你有数据库、SOL等基础知识。 2、ORM: ObjectRelational Mapping。让开发者用对象操作的形式操作关系数据库 比如插入: User user new User(Name"admin"Password"123”; orm.Save(user);比如查询: Book b…

mac上部署单体hbase

1. 简介 HBase 是一个开源的、分布式的、版本化的典型非关系型数据库。它是 Google BigTable 的开源实现&#xff0c;并且是 Apache 基金会的 Hadoop 项目的一部分1。HBase 在 Hadoop Distributed File System (HDFS) 上运行&#xff0c;作为一个列式存储非关系数据库管理系统…

yolov8在进行目标追踪时,model.track()中persist参数的含义

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Unity 面试篇|(五)热更新与Lua语言篇 【全面总结 | 持续更新】

目录 1.什么是热更新&#xff1f;2.主流的代码热更方案有哪些&#xff1f;3.AssetBundle介绍4.AssetBundle的具体开发流程5.AssetBundle的压缩格式6.AssetBundle对象的加载方式7.ssetBundle资源卸载8.资源如何打包&#xff1f;依赖项列表如何生成&#xff1f;9.如何解析版本文件…

华为OD机试2024年最新题库(Python)

我是一名软件开发培训机构老师&#xff0c;我的学生已经有上百人通过了华为OD机试&#xff0c;学生们每次考完试&#xff0c;会把题目拿出来一起交流分享。 重要&#xff1a;2024年1月-5月&#xff0c;考的都是OD统一考试&#xff08;C卷&#xff09;&#xff0c;题库已经整理…

Flutter之运行错误:this and base files have different roots

运行时报错&#xff1a; this and base files have different roots: E:\Demolpro\waqu\build\flutter-plugin-_android_lifecycle and C:\Users\78535\AppData\Local\Pub\Cache\hosted\pub.dev\flutter_pulgin_android_lifecycle-2.0.17\android 如图&#xff1a; 这种情况…

【JavaSE】P33~P113 方法,重载,数组,对象,构造器,this关键字,数组和对象的内存图,JavaBean

练习 1 方法方法定义及调用JShell简单使用&#xff08;要求Java9以上&#xff09;方法语句流程控制及注意事项选择循环 方法的重载 2 数组三种初始化方式数组在内存中的存储内存图 3 对象对象内存图Getter/Setter快捷写法this 关键字构造方法JavaBean的四个标准对象数组 二、编…

微信小程序支付之V2支付

一、引入maven <dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-pay</artifactId><version>3.3.4.B</version><exclusions><exclusion><artifactId>qrcode-utils</artifactId&…

生成视频 图像拖拽生成视频

目录 motionctrl DragNUWA 预训练模型&#xff1a; motionctrl 该工具的多功能性使其成为视频制作领域的一项重要创新。它不仅能与现有的视频生成工具如LVDM和VideoCrafter1无缝集成&#xff0c;还能与SVD等其他视频生成方法兼容&#xff0c;为视频创造提供更多可能性。此外…

带F/V变换的反馈型相位控制电路D211,内置过载限制功能、电压监测功能

D211是一块相位控制集成电路&#xff0c;该电路内部具有F-V转换接口、控制放大器、过载限制、软启动、自动重触发、电压监视、电压电流同步等功能。主要应用于电动工具中马达转速的控制。 主要特点&#xff1a; 内置F-V转换接口 外控制集成放大器 内置过载限制功能 …