博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
requests的基本使用
阅读量:6528 次
发布时间:2019-06-24

本文共 1795 字,大约阅读时间需要 5 分钟。

Reqeusts概述

问题:为什么要学习requests,而不是urllib?

  • requests的底层实现就是urllib
  • requests简单易用
  • requests在python2 和python3中通用,方法完全一样
  • requests能够自动帮助我们解压(gzip压缩的等)网页内容

requests的作用

  • 作用:发送网络请求,返回响应数据
  • 中文文档 API:

  • 如何使用requests来发送网络请求?

requests的基本使用

  • 安装requests模块: pip install requests
  • 使用步骤(三部曲):

    • 导入模块: import reqeusts
    • 发送get请求,获取响应: response = requests.get(url)
    • 从响应中获取数据
  • 核心代码: 发送get请求

response = requests.get(url)
  • response的常用属性:
    • response.text
    • respones.content 二进制形式的响应数据
    • response.status_code 响应状态吗
    • response.headers 响应头
    • response.request.headers 请求头
  • response.text 和response.content的区别
    • response.text
      • 类型:str
      • 解码类型: 根据HTTP头部对响应的编码作出有根据的推测,推测的文本编码
      • 如何修改编码方式:response.encoding=”gbk”
    • response.content
      • 类型:bytes
      • 解码类型: 没有指定
      • 如何修改编码方式:response.content.deocde(“utf8”)
    • 推荐使用response.content.deocde()的方式获取响应的html页面
  • 需求:通过requests向百度首页发送请求,获取百度首页的数据
# 1. 导入这个模块; 如果没有就安装一下: pip install resquests    import requests    # 2. 发送请求(get)    response = requests.get("http://www.baidu.com/")    # 3. 读取数据 # response.encoding = "utf8" # #print(response.encoding) #ISO-8859-1 拉丁文编码表; 希腊等一些欧洲国家 # text 属性: 返回 自动识别编码的字符穿, 如果要指定编码,可以使用encoding的属性来指定编码 # content = response.text # print(content) # content 属性: 获取的是二进制数据,使用decode进行解码 data = response.content.decode() print(data) # response.status_code 响应状态吗 print(response.status_code) # response.request.headers 请求头 print(response.request.headers) # response.headers 响应头 print(response.headers)

怎么才能做到100%的解决乱码问题

  1. 先使用decode()来尝试解码, 现在国内80%网站都是用utf-8进行编码的
  2. 如果上面面没有解决乱码问题,就指定GBK的编码方式, 个别网站使用的是GBK
  3. 如果指定GBK还不行,就request的自动推断功能了,通过text 属性获取
# 1. 现在国内80%网站都是用utf-8进行编码的    data = response.content.decode()    print(data)    # 2. 如果上面面没有解决乱码问题,就指定GBK的编码方式    # data = response.content.decode("GBK")    # 3. 如果指定GBK还不行,就request的自动推断功能了,通过text 属性获取    # data = response.text

转载于:https://www.cnblogs.com/ddop1/p/9468714.html

你可能感兴趣的文章
(笔记 - 纯手敲)Spring的IOC和AOP 含GIT地址
查看>>
7-设计模式介绍
查看>>
让运维更高效:关于ECS系统事件
查看>>
J2EE分布式框架--单点登录集成方案
查看>>
跨域传递参数
查看>>
android 4.2的新特性layoutRtl,让布局自动从右往左显示
查看>>
iOS tableView 下拉列表的设计
查看>>
sharepoint 2010 属性编辑工具 SPCamlEditor 1.5.1
查看>>
JAVA学习笔记--4.多线程编程 part3.JAVA多线程的常见概念和基本类库
查看>>
linux下配置网络环境
查看>>
java Windows7 下环境变量设置
查看>>
NBU异构还原Oracle完整备份的一些总结
查看>>
freeBSD安装详细讲解
查看>>
WSFC2016 VM弹性与存储容错
查看>>
文档管理,文本编辑控件TX Text Control .NET for WPF
查看>>
复习 Python 匿名函数 内建函数
查看>>
Security Identifiers | Win SRV2016 SID Change 修改
查看>>
看看来自日本的扫描,做网站需要注意的
查看>>
JDK 1.7+Android SDK+IntelliJ IDEA 13+Genymotion 安卓开发环境部署
查看>>
钓鱼邮件***防范指南
查看>>