爬虫Requests库是什么,怎么用?

news/2024/12/2 16:57:15/

Requests库是Python中一个非常流行的HTTP请求库,它可以方便地发送HTTP请求并处理响应。在本文中,我们将介绍Requests库的基本用法,包括发送GET和POST请求、设置请求头、处理响应等。

一、安装Requests库

在使用Requests库之前,我们需要先安装它。可以使用pip命令来安装:

pip install requests

二、发送GET请求

发送GET请求是最常见的HTTP请求之一。使用Requests库发送GET请求非常简单,只需要调用get()方法即可。例如,我们要获取百度首页的HTML代码,可以使用以下代码:

import requestsresponse = requests.get('https://www.baidu.com/')
print(response.text)

上述代码中,我们首先导入了Requests库,然后调用get()方法发送了一个GET请求,请求的URL为’https://www.baidu.com/'。get()方法返回一个Response对象,我们可以通过调用它的text属性获取响应的HTML代码。

三、发送带参数的GET请求

有时候我们需要发送带参数的GET请求,例如查询某个关键字的搜索结果。Requests库提供了params参数来设置请求参数。例如,我们要查询关键字为’Python’的搜索结果,可以使用以下代码:

import requestsparams = {'wd': 'Python'}
response = requests.get('https://www.baidu.com/s', params=params)
print(response.url)
print(response.text)

上述代码中,我们通过params参数设置了请求参数,然后发送了一个GET请求到’https://www.baidu.com/s’,最后打印了响应的URL和HTML代码。

四、发送POST请求

发送POST请求通常用于提交表单数据或上传文件等操作。使用Requests库发送POST请求也非常简单,只需要调用post()方法即可。例如,我们要提交一个简单的表单,可以使用以下代码:

import requestsdata = {'username': 'admin', 'password': '123456'}
response = requests.post('http://httpbin.org/post', data=data)
print(response.text)

上述代码中,我们通过data参数设置了POST请求的表单数据,然后发送了一个POST请求到’http://httpbin.org/post’,最后打印了响应的JSON数据。

五、发送带文件的POST请求

如果要上传文件,可以使用Files参数来设置文件。例如,我们要上传一个名为’example.txt’的文件,可以使用以下代码:

import requestsfiles = {'file': open('example.txt', 'rb')}
response = requests.post('http://httpbin.org/post', files=files)
print(response.text)

上述代码中,我们通过Files参数设置了要上传的文件,然后发送了一个POST请求到’http://httpbin.org/post’,最后打印了响应的JSON数据。

六、设置请求头

有时候我们需要设置请求头,例如设置User-Agent来模拟浏览器访问。Requests库提供了headers参数来设置请求头。例如,我们要设置User-Agent为’Mozilla/5.0’,可以使用以下代码:

import requestsheaders = {'User-Agent': 'Mozilla/5.0'}
response = requests.get('https://www.baidu.com/', headers=headers)
print(response.text)

上述代码中,我们通过headers参数设置了请求头,然后发送了一个GET请求到’https://www.baidu.com/',最后打印了响应的HTML代码。

七、处理响应

在发送HTTP请求后,我们需要处理响应。Requests库提供了很多方法来处理响应,例如获取响应的状态码、获取响应的头部信息、获取响应的JSON数据等。以下是一些常用的方法:

  1. 获取响应的状态码
response.status_code
  1. 获取响应的头部信息
response.headers
  1. 获取响应的JSON数据
response.json()
  1. 获取响应的HTML代码
response.text
  1. 获取响应的二进制数据
response.content

八、异常处理

在发送HTTP请求时,可能会出现各种异常,例如网络连接超时、请求URL不存在等。Requests库提供了一些异常类来处理这些异常。以下是一些常用的异常类:

  1. requests.exceptions.RequestException:所有Requests库异常的基类。

  2. requests.exceptions.Timeout:请求超时异常。

  3. requests.exceptions.ConnectionError:网络连接异常。

  4. requests.exceptions.HTTPError:HTTP异常。

以下是一个简单的异常处理示例:

import requeststry:response = requests.ge/', timeout=1)response.raise_for_status()
except requests.exceptions.Timeout:print('请求超时')
except requests.exceptions.ConnectionError:print('网络连接异常')
except requests.exceptions.HTTPError:print('HTTP异常')
else:print(response.text)

上述代码中,我们使用try-ex


http://www.ppmy.cn/news/78605.html

相关文章

C++入门篇---(命名空间、缺省参数、以及输入、输出)

前言 c 我来了,恭喜牛牛解锁新世界.开启c的学习之旅. 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:讲解C…

Why Rust Android

Android Rust https://source.android.google.cn/docs/setup/build/rust/building-rust-modules/overview?hlzh-cn 像Java和Kotlin这样的托管语言是Android应用程序开发的最佳选择。这些语言旨在实现易用性、可移植性和安全性。Android 运行时 (ART) …

k8s pv pvc的介绍|动态存储|静态存储

k8s pv pvc的介绍|动态存储|静态存储 1 emptyDir存储卷2 hostPath存储卷3 nfs共享存储卷4 PVC 和 PVNFS使用PV和PVC 4 搭建 StorageClass NFS,实现 NFS 的动态 PV 创建 1 emptyDir存储卷 当Pod被分配给节点时,首先创建emptyDir卷,并且只要该…

2023年,千万别裸辞....

作为IT行业的大热岗位——软件测试,只要你付出了,就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的,但放眼望去,哪个工作不是这样的呢?会有哪家公司愿意养一些闲人呢?…

Pycharm 配置jupyter notebook 且Windos 安装vim编辑器

请记住要想让你的python成功安装jupyter notebook ,你的python最好使用p大于等于python3.7 最好不要在python2大版本中安装jupyternotebook 这个会报错,需要你改一些配置文件,除非你想挑战一下自己,不过后面我会尝试在python2大版…

Elasticsearch:Explicit mapping - 显式映射

显式映射相比较动态映射(Dynamic mapping)是需要我们在索引创建时就定义字段及其类型。这个和我们传统的 RDMS 数据库一样,在我们写入数据到数据库之前,我们需要工整地定义好每个字段及其类型和长度。Elasticsearch 既可以使用显式…

前端跨域解决方案

目录 🦁 项目场景网络请求跨域error 🦁 问题描述🦁 原因分析🦁 解决方案目前主流的跨域解决方案有两种1. CrossOrigin注解:1.1 方法上方1.2 类上方 2.前端解决 proxy 🦁 项目场景 网络请求跨域error 一般会…

构建高可用性的核心服务层:Coupang电子商务应用程序的技术实践

随着Coupang电子商务平台用户数量的快速增长,构建一个高可用性的核心服务层成为了关键任务。本文将介绍Coupang如何通过统一的NoSQL数据存储、缓存层和实时数据流等技术和策略,构建一个高可用性的核心服务层,以满足日益增长的数据流量需求&am…