Python爬虫之requests模块

news/2024/10/23 9:23:26/

Python爬虫之requests模块

一、requests模块介绍

requests文档http://docs.python-requests.org/zh_CN/latest/index.html

1、requests模块的作用:

  • 发送http请求,获取响应数据

2、requests模块是一个第三方模块,需要在你的python(虚拟)环境中额外安装

  • pip/pip3 install requests

3、requests模块发送get请求

  1. 需求:通过requests向百度首页发送请求,获取该页面的源码
  2. 运行下面的代码,观察打印输出的结果
# 1.2.1-简单的代码实现
import requests # 目标url
url = 'https://www.baidu.com' # 向目标url发送get请求
response = requests.get(url)# 打印响应内容
print(response.text)

二、response响应对象

观察上边代码运行结果发现,有好多乱码;这是因为编解码使用的字符集不同早造成的;我们尝试使用下边的办法来解决中文乱码问题

# 1.2.2-response.content
import requests # 目标url
url = 'https://www.baidu.com' # 向目标url发送get请求
response = requests.get(url)# 打印响应内容
# print(response.text)
print(response.content.decode()) # 注意这里!
  1. response.text是requests模块按照chardet模块推测出的编码字符集进行解码的结果
  2. 网络传输的字符串都是bytes类型的,所以response.text = response.content.decode(‘推测出的编码字符集’)
  3. 我们可以在网页源码中搜索charset,尝试参考该编码字符集,注意存在不准确的情况

1、response.text 和response.content的区别:

  • response.text
    • 类型:str
    • 解码类型: requests模块自动根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码
  • response.content
    • 类型:bytes
    • 解码类型: 没有指定

2、通过对response.content进行decode,来解决中文乱码

  • response.content.decode() 默认utf-8
  • response.content.decode("GBK")
  • 常见的编码字符集
    • utf-8
    • gbk
    • gb2312
    • ascii (读音:阿斯克码)
    • iso-8859-1

3、response响应对象的其它常用属性或方法

response = requests.get(url)中response是发送请求获取的响应对象;response响应对象中除了text、content获取响应内容以外还有其它常用的属性或方法:

  • response.url响应的url;有时候响应的url和请求的url并不一致
  • response.status_code 响应状态码
  • response.request.headers 响应对应的请求头
  • response.headers 响应头
  • response.request._cookies 响应对应请求的cookie;返回cookieJar类型
  • response.cookies 响应的cookie(经过了set-cookie动作;返回cookieJar类型
  • response.json()自动将json字符串类型的响应内容转换为python对象(dict or list)
# 1.2.3-response其它常用属性
import requests# 目标url
url = 'https://www.baidu.com'# 向目标url发送get请求
response = requests.get(url)# 打印响应内容
# print(response.text)
# print(response.content.decode())             # 注意这里!
print(response.url)                            # 打印响应的url
print(response.status_code)                    # 打印响应的状态码
print(response.request.headers)                # 打印响应对象的请求头
print(response.headers)                        # 打印响应头
print(response.request._cookies)            # 打印请求携带的cookies
print(response.cookies)                        # 打印响应中携带的cookies

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

相关文章

边缘计算体验之二:简单高可用 ZStack Mini的巧妙设计

在上篇文章中,我们介绍了ZStack Mini产品具有的“4S”特性中的“3S”,即简单(Simple)、可扩展(Scalable)和智能(Smart),本文的主角是另外一个“S(健壮&#x…

BB8球形机器人制作教程

BB8球形机器人制作教程 还记得《星球大战:原力觉醒》中呆萌可爱的BB8球形机器人吗?来上车吧,老司机教你亲手将这个萌货制造出来!本教程旨在以低成本、简单易行的方式结合以3D打印技术制作BB8机器人,供有兴趣爱好者参考…

你真的了解什么是智能座舱么(域控制器篇)

来源 | 阿宝1990 要说奥迪A4L凭什么这么受欢迎,能够在销量上领先奔驰和宝马,我觉得“科技”是非常重要的一点,这也是奥迪品牌一向的标签,像是仪表盘这项汽车上古时代的配置,奥迪就重新将其定义,打造出了“虚…

让你少奋斗10年的工作经验

第一:不要认为停留在心灵的舒适区域内是可以原谅的。      每个人都有一个舒适区域,在这个区域内是很自我的,不愿意被打扰,不愿意被push,不愿意和陌生的面孔交谈,不愿意被人指责,不愿意按照…

RDC到场礼,ART-Badge V2.0开发记录,极客感十足

开源地址:https://github.com/ART-Badge #前言 关注 RT-Thread 的同学肯定知道,RT-Thread为了向众多开发者展示RT-Thread的最新开发和生态建设成果,每年都会举办一场开发者大会(简称:RDC — RT-Thread Developer Con…

科技爱好者周刊(第 208 期):晋升制度的问题

这里记录每周值得分享的科技内容,周五发布。([通知] 下周五是端午节,周刊暂停。) 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。 周刊讨论区的帖子《谁在招人?》,提供大量程序员…

极客感十足的电子胸牌 ART-Badge V2.0开发记录!

开源地址:https://github.com/ART-Badge 前言 关注 RT-Thread 的同学肯定知道,RT-Thread为了向众多开发者展示RT-Thread的最新开发和生态建设成果,每年都会举办一场开发者大会(简称:RDC — RT-Thread Developer Confer…

一周信创舆情观察(11.15~11.21)

一、一周舆情要点 11月16日,工信部印发《“十四五”信息通信行业发展规划》(以下简称《规划》),提出到2025年,信息通信行业整体规模进一步壮大,发展质量显著提升,基本建成高速泛在、集成互联、…