引入Requests库
import requests
# 发起GET请求
r = requests.get('https://www.baidu.com/')
# 查看响应类型 requests.models.Response
print(type(r))
# 输出状态码 200
print(r.status_code)
# 输出响应内容类型 str
print(type(r.text))
# 输出响应内容
print(r.text)
# 输出cookies
print(r.cookies)
GET
import requests
url = “http://httpbin.org/get”
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
}
# GET请求参数
param = {'name': 'ide', 'city': 'New York'}
# 传递参数params
response = requests.get(url,params=param,headers=headers)
print(response.text)
POST
import requests
url=“http://httpbin.org/post”
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
}
# POST请求参数
data = {'name': 'ide', 'city': 'New York'}
# 传递参数params
response = requests.post(url,data=data,headers=headers)
print(response.text
文件上传
# https://httpbin.org/post是一个测试接口,
# 请求有什么参数,会给你返回什么参数
url = 'https://httpbin.org/post'
files = {
'file':open('hengyan.html','r')
}
#上传文件
response = requests.post(url=url,files=files,headers=headers)
print(response.text)
认证
import requests
#
auth=('test', '123456')
#
response = requests.get(
'http://192.168.199.107',
auth = auth
)
print (response.text)
设置代理
# 公开代理、私密代理、独享代理
proxies = {
'http':'192.168.1.1:8000',
'https':'192.168.1.1:8000',
}
response = requests.get(url=url,proxies=proxies,headers=headers)
设置cookies
# 1.直接将cookies放在请求头中
# 2.将cookies放在requests.get()请求参数中
# 将浏览器中的cookies字符串转为字典
cookies_str = """BAIDU_SSP_lcr=d216901100132ae1000000025d424708; Hm_lvt_7839b44f7a3c4b83b2e218c8d227dfad=1564624654; Hm_lpvt_7839b44f7a3c4b83b2e218c8d227dfad=1564707045"""
cookies_dict = {cookie.split('=')[0]:cookie.split('=')[1] for cookie in cookies_str.split('; ')}
print(cookies_dict)
response = requests.get(url=url,headers=headers,cookies=cookies_dict)
session会话维持
# 一般情况下用户模拟登录成功后,需要获取cookies信息,
# 然后使用cookies发起请求,维持登录身份。
## 使用session来维持会话
#实例化一个session对象
session_obj = requests.Session()
#session_obj会存储相关信息,来保持请求之间 的关系,属于同一次会话
session_obj.get()
session_obj.post()
证书验证
# verify: CA证书认证 Defaults to ``True``:默认开启证书认证
# verify=False:表示忽略证书认证
requests.get(url=url,headers=headers,verify=False)