requests 模块

请求方式:

response=requests.get(‘https://github.com/timeline.json’)           # GET请求
response=requests.post(“http://httpbin.org/post”) # POST请求
response=requests.put(“http://httpbin.org/put”) # PUT请求
response=requests.delete(“http://httpbin.org/delete”) # DELETE请求
response=requests.head(“http://httpbin.org/get”) # HEAD请求
response=requests.options(“http://httpbin.org/get” ) # OPTIONS请求

发送请求:

# 最基本的不带参数的get请求
response = requests.get('https://github.com/')
# 带参数的get请求
response = requests.get(url='http://dict.baidu.com/s', params={'wd': 'python'})

为url传递参数:

url_params = {'key':'value'}       #字典传递参数,如果值为None的键不会被添加到url中
response = requests.get('http://baidu.com/xx',params = url_params)
print(response.url)

--------------------------------------------------------------------------------
#控制台输出结果:http://baidu.com/xx?key=value

获取响应内容:

#获取当前的编码
response.encoding
#设置编码
response.encoding = 'utf-8'
#以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
response.text
#以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。
response.content
#以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
response.headers
#响应状态码
response.status_code
#返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read()
response.raw
# 查看r.ok的布尔值便可以知道是否登陆成功
response.ok


#*特殊方法*#


#Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
response.json()
#失败请求(非200响应)抛出异常
response.raise_for_status()

post发送json请求:

import requests
import json
response = requests.post(url, data=json.dumps({'some': 'data'}))
print(response.json())

定制头和cookie信息:

import requests
#配置请求头信息
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
cookie = {'key':'value'}
data = {'some': 'data'}
url="https://xxxx.com/xxx"
#添加请求头
response=requests.get(url,headers=headers,cookies=cookie)
#或
response=requests.post(url, data=data, headers=headers)