欢迎来到Louis的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

python requests模块

安装 Requests

在你已经安装好python的前提下:

pip install requests

如果你没有安装 pip (啧啧),这个 Python installation guide 可以带你完成这一流程。

获得源码

Requests 一直在 Github 上积极地开发,你可以一直从这里获取到代码。

你可以克隆公共版本库:

git clone git://github.com/kennethreitz/requests.git

发送请求

requests模块用于是发送网络请求

导入模块

import requests

尝试获取某个网页,支持HTTP的多种请求类型(GET,PUT,DELETE,HEAD ,OPTIONS )

>>> r = requests.get('https://github.com/timeline.json')
>>> r = requests.post("http://httpbin.org/post")
>>> r = requests.put("http://httpbin.org/put")
>>> r = requests.delete("http://httpbin.org/delete")
>>> r = requests.head("http://httpbin.org/get")
>>> r = requests.options("http://httpbin.org/get")

传递 URL 参数

如果你是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的后面。

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

import requests

args = {'arg1': 'value1', 'arg2': 'value2'}
response = requests.get('http://www.9158.com', params=args)
print(response.url)
http://www.9158.com/?arg1=value1&arg2=value2

响应内容

返回结果response是一个request response类型

import requests

response = requests.get('http://www.9158.com')
print(response.text)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/............

 Requests 会自动解码来自服务器的内容。大多数 unicode 字符集都能被无缝地解码。

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

import requests

response = requests.get('http://www.9158.com')
print(response.encoding)
response.encoding = 'utf-8'
print(response.encoding)
gb2312
utf-8

二进制响应内容

你也能以字节的方式访问请求响应体,对于非文本请求:

>>>response = requests.get('http://image1.miaobolive.com/avator/2018-01/15/17/20180115172402_43697510_640.png')
b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\....

Requests 会自动为你解码 gzip 和 deflate 传输编码的响应数据。

JSON 响应内容

Requests 中也有一个内置的 JSON 解码器,助你处理 JSON 数据:

response = requests.get('https://room.9158.com/live/getanchoronlinetime.aspx?starttime=201803051100&endtime=201803051200')
print(response.json())
{'code': 'A00006', 'msg': '成功', 'data': [{'idx':...............

定制请求头

更加复杂的 POST 请求

响应状态码

响应头

Cookie

重定向与请求历史

超时

request 基本用法

http://docs.python-requests.org/zh_CN/latest/user/quickstart.html#id3

 

高级用法

会话对象

请求与响应对象

代理

http://docs.python-requests.org/zh_CN/latest/user/advanced.html#advanced

posted on 2018-03-23 16:44  Louiszj  阅读(293)  评论(0编辑  收藏  举报

导航