你也许经常想为URL的查询字符串(query string)传递某种数据。如果你是手工构建URL,

那么数据会以键/值 对的形式置于URL中,跟在一个问号的后面。例如,httpbin.org/get?key=val 。

Requests允许你使用 params 关键字参数,以一个字典来提供这些参数。举例来说,

如果你想传递 key1=value1 和 key2=value2 到 httpbin.org/get,那么你可以使用如下代码:

为URL传递参数

import requests
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)
# 注意字典里值为 None 的键都不会被添加到 URL 的查询字符串里。
print(r.url)

响应内容

请求发出后,Requests会基于HTTP头部对响应的编码作出有根据的推测。当你访问r.text 之时,Requests会使用其推测的文本编码。你可以找出Requests使用了什么编码,并且能够使用 r.encoding 属性来改变它:

r = requests.get('https://github.com/timeline.json')
print(r.text)
r.encoding
r.encoding = 'ISO-8859-1'

当你访问 r.text ,Request都将会使用 r.encoding 的新值。你可能希望在使用特殊逻辑计算出文本的编码的情况下来修改编码。比如 HTTP 和 XML 自身可以指定编码。这样的话,你应该使用 r.content 来找到编码,然后设置 r.encoding 为相应的编码。这样就能使用正确的编码解析 r.text 了。

在你需要的情况下,Requests也可以使用定制的编码。如果你创建了自己的编码,并使用codecs 模块进行注册,你就可以轻松地使用这个解码器名称作为 r.encoding 的值, 然后由Requests来为你处理编码。

最新文章

  1. ADO.NET编程之美----数据访问方式(面向连接与面向无连接)
  2. JAVA NIO FileChannel 内存映射文件
  3. 认识VTK工作原理
  4. Android 图标尺寸与设计
  5. 30个深度学习库:按Python、C++、Java、JavaScript、R等10种语言分类
  6. Codeforces Round #338 (Div. 2) A. Bulbs 水题
  7. 无需图片,使用CSS3实现圆角按钮[转]
  8. Android开发数据存储之ContentProvider详解
  9. vijosP1359 Superprime
  10. Android - NullPointerException
  11. Codeforces 540D Bad Luck Island - 概率+记忆化搜索
  12. C编程风格.
  13. EJB(一)认识ejb
  14. 部署和使用kibana
  15. Java中继承与多态
  16. java内存溢出问题
  17. 一文看懂npm、yarn、pnpm之间的区别
  18. Redis-Sentinel 哨兵
  19. 前端开发【第一篇: HTML】
  20. 九度OJ-1042-最长公共子序列(LCS)

热门文章

  1. 【TIJ4】第三章全部习题
  2. H5新特性之语义化标签
  3. ECharts的使用与总结
  4. CMDB_Agent版本
  5. 李宏毅老师机器学习课程笔记_ML Lecture 3-1: Gradient Descent
  6. 在Fedora中安装OpenCV-Python | 二
  7. PHP7内核:源码分析的环境与工具
  8. PHP7内核(三):源码目录结构
  9. 使用FME对CAD管网数据进行过滤、聚合、中心点替换
  10. RabbitMQ AMQP 事务机制