Python爬虫之Requests库基本使用详解

 更新时间:2023年09月14日 09:41:32   作者:万里顾—程  
这篇文章主要介绍了Python爬虫之Requests库基本使用详解,Requests 库是在 urllib 模块的基础上开发而来,继承了urllib.request的所有特性,与urllib.request 相比,Requests 在使用时更加简洁方便、快捷,所以 Requests 库在编写爬虫程序时使用较多,需要的朋友可以参考下

1、Requests简介和下载

Requests 库简介

Requests 库是在 urllib 模块的基础上开发而来,继承了urllib.request的所有特性。

Requests 采用了 Apache2 Licensed(一种开源协议)的 HTTP 库,支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的URL和POST数据自动编码。

与urllib.request 相比,Requests 在使用时更加简洁方便、快捷,所以 Requests 库在编写爬虫程序时使用较多。

官方文档对 Requests 库的介绍:比较生动形象

Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。
警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、
甚至死亡。

requests中文文档

Requests的下载安装

1、requests库安装位置:Python安装目录的Scripts文件夹下

2、安装命令:pip install requests-i https://pypi.douban.com/simple,如下图则安装成功:

在这里插入图片描述

2、Requests 库基本使用

Requests 响应对象类型

这里分别使用 requests 和 urllib.request 向网站发起get请求,然后打印响应对象的型:

# 导入模块
import urllib.request
import requests
url = "https://www.baidu.com"
# requests 和 urllib.request 响应对象类型对比
# equests 发送get请求
response_s = requests.get(url=url)
# 打印响应对象:Response
print(type(response_s))
# urllib.request发送get请求
response = urllib.request.urlopen(url=url)
# 打印响应对象:HTTPResponse
print(type(response))

执行结果:可以看到,requests 的响应对象类型就是 Response,而urllib.request 的响应对象类型是 HTTPResponse

<class 'requests.models.Response'>
<class 'http.client.HTTPResponse'>

Requests 六个属性

requests 的响应对象类型是 Response,该Response对象具有以下几个常用属性:

常用属性说明
encoding返回或者指定响应对象的字符编码
status_code返回响应对象的HTTP响应码
url返回请求的 url 地址
headers返回请求头信息
cookies返回 cookies 信息
text以字符串形式返回网页源码
content以二进制数据形式返回网页源码,在保存下载图片时可以使用该属性

Response对象属性使用实例

代码实例:

import urllib.request
import requests
url = "https://www.baidu.com"
response_s = requests.get(url=url)
# 打印响应对象字符编码
print(response_s.encoding)
# 指定响应对象字符编码为utf-8
response_s.encoding="utf-8"
# 打印状态码
print(response_s.status_code)
# 打印请求url
print(response_s.url)
# 打印头信息
print(response_s.headers)
# 打印cookie信息
print(response_s.cookies)
# 以字符串形式打印网页源码
print(response_s.text)
# 以二进制数据形式打印网页源码
print(response_s.content)

执行结果:(网页源码省略)

# 响应对象字符编码
ISO-8859-1
# 状态码
200
# url 地址
https://www.baidu.com/
# 响应头信息
{'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Fri, 19 Aug 2022 01:27:47 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:23:55 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'}
# cookie信息
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>

到此这篇关于Python爬虫之Requests库基本使用详解的文章就介绍到这了,更多相关Python的Requests库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PyTorch使用cpu加载模型运算方式

    PyTorch使用cpu加载模型运算方式

    今天小编就为大家分享一篇PyTorch使用cpu加载模型运算方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python实现深度遍历和广度遍历的方法

    Python实现深度遍历和广度遍历的方法

    今天小编就为大家分享一篇Python实现深度遍历和广度遍历的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python实现不一样的猜数字游戏的示例代码

    Python实现不一样的猜数字游戏的示例代码

    大家知道“猜数字”这个游戏吗?顾名思义就是一个人想一个数字,另一个人猜。本文就来用Python实现一款不一样的猜数字游戏,感兴趣的可以了解一下
    2023-02-02
  • Python Pandas 获取列匹配特定值的行的索引问题

    Python Pandas 获取列匹配特定值的行的索引问题

    这篇文章主要介绍了Python Pandas 获取列匹配特定值的行的索引问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • Python实现设计模式之单例模式详解

    Python实现设计模式之单例模式详解

    这篇文章主要介绍了Python实现设计模式之单例模式详解,设计模式是指软件设计问题的推荐方案,设计模式一般是描述如何组织代码和使用最佳实践来解决常见的设计问题,需谨记一点:设计模式是高层次的方案,并不关注具体的实现细节,比如算法和数据结构,需要的朋友可以参考下
    2023-09-09
  • 详解Python中的strftime()方法的使用

    详解Python中的strftime()方法的使用

    这篇文章主要介绍了详解Python中的strftime()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • java中的控制结构(if,循环)详解

    java中的控制结构(if,循环)详解

    这篇文章简单地介绍了java中的控制结构(if,循环)文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面我们来学习下吧
    2019-06-06
  • PyCharm如何设置Console控制台输出自动换行

    PyCharm如何设置Console控制台输出自动换行

    这篇文章主要介绍了PyCharm如何设置Console控制台输出自动换行问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 利用Python制作动态排名图的实现代码

    利用Python制作动态排名图的实现代码

    这篇文章主要介绍了利用Python制作动态排名图的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • python入门课程第四讲之内置数据类型有哪些

    python入门课程第四讲之内置数据类型有哪些

    这篇文章主要介绍了python入门课程第四讲之内置数据类型有哪些?本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09

最新评论