一.导入操作
import requests
二.请求url
1.无参数的GET请求
r = request.get("www.baidu.com")
2.有参数的GET请求 # 以params为参数 # 传递的必须是字典格式
payload = {'name1':'kobe','name2':'hohaod'} r = requests.get("www.baidu.com",params=payload) print (r,url)
3.发送POST请求 # 以data为参数 # 传递的必须是字典格式
r = requests.post("www.baidu.com",data = {'name':'hohaod'})
import json # 发送json格式数据 payload = {"name":"hohaod"} r = requests.post("www.baidu.com",json=payload)
url = 'www.baidu.com' # 发送文件 # files参数 files = {'file':open('report.xls','rb')} r = requests.post(url,files = files) print(r.text)
4.另外请求有4种方式(HTTP协议中的4种method)
r = requests.get("www.baidu.com/put") r = requests.delete("www.baidu.com/delete") r = head("www.baidu.com/get") r = options("www.baidu.com/get")
三.获取返回信息
5.获取返回信息并转换为各种格式
r = requests.get("www.baidu.com") r = requests.get("www.baidu.com",stream = True) print(r.raw.read()) #获取原始数据 print(r.text) # 获取响应结果 # 返回的是字符串 print(r.content) # 与r.text的差别就是r.content返回的是字节流(爬图片时可用到) print(r.json) #如果请求对应的响应是一个json 可用此方法直接拿到json格式的数据 print(r.encoding) # 获取内容编码 r.encoding = 'utl-8' # 修改编码方式 print(r.json()) # 将内容转换为JSON对象
四.关于headers(包括请求头和响应头)
6.获取响应头(响应头是字典)
r = requests.get('www.baidu.com/get') print(r.status_code) print(r.headers) #是一个字典 print(r.headers['Content-Type']) print(r.headers.get('content-type'))
7.获取请求头
r.requests.headers
8.定制请求头 # 其实也就是给url传参数
url = 'www.baidu.com' headers = {'User_Agent':'my_computer'} r = requests.get(url,headers = headers)
五.响应状态码
r = requests.get("www.baidu.com/get") print(r.status_code) print(r.status_code==requests.codes.ok) bad_r = requests.get('www.baidu.com/status/404') print(bad_r.status_code)
六.关于请求时间
requests.get('www.baidu.com',timeout)