• Python Requests-学习笔记(2)


    你也许经常想为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来为你处理编码。

  • 相关阅读:
    Ubuntu16.04安装openldap和phpldapadmin
    Java 8 中的抽象类和接口到底有啥区别?
    Redis 开发陷阱及避坑指南!
    Java 中的 6 颗语法糖
    Java 8 有多牛逼?打破一切你对接口的认知!
    Git操作常用的命令都在这里了。
    Github 太狠了,居然把 "master" 干掉了!
    微服务业务日志收集方案,写得非常好!
    Maven基本介绍与安装
    IntelliJ IDEA 调试 Java 8 Stream,实在太香了!
  • 原文地址:https://www.cnblogs.com/zijiyanxi/p/5230900.html
Copyright © 2020-2023  润新知