1.get请求:不带参数
import requests
#get请求
base_url ='http://www.baidu.com'
r=requests.get(base_url)#返回一个消息实体(响应状态码,响应头,响应正文/报文)
print(r)#返回的消息实体是封装起来的,如果想看详细的得一个一个看
print("响应头是:",r.headers)
print("响应状态码是:",r.status_code)
print("响应报文是:",r.text)#有3种格式:xml,html,json
2.post请求:带参数
import requests
import json
# post请求
base_url ='http://XXX.com/XXX'
date={"username":"XXX","password":"XXX","workStatus":"XXX",}
r=requests.post(base_url,date)#返回一个消息实体(响应状态码,响应头,响应正文/报文)
print(r)#返回的消息实体是封装起来的,如果想看详细的得一个一个看
print("响应头是:",r.headers)
print("响应状态码是:",r.status_code)
print("响应报文是:",r.text)#有3种格式:xml,html,json,这个是json
text和json()都可以从消息实体里获取到响应正文
2.1.注意:2种方式的差别的是类型不同:
–>报文格式的3种形式xml,html,json都可以使用text
–>xml,html如果都使用json()程序会报错!只有json类型的返回值才支持json
print("响应报文1是:",r.text,type(r.text))#是字符串形式
print("响应报文2是:",r.json(),type(r.json()))#是字典形式
#对于上边的两种形式,推荐使用字典形式,目的是方便取值,对于cookie的获取可以看出,详见下面
2.2.cookie
cookies是类字典的形式,取值的话用字典里key取值的方式
# post请求
url ='https://***'
date={"email":"***,"password":"***","remember":"***",}
r=requests.post(url,date)#返回一个消息实体(响应状态码,响应头,响应正文/报文)
print(r)#返回的消息实体是封装起来的,如果想看详细的得一个一个看
print("响应头是:",r.headers)#这里边会有一个set-cookie
print("响应状态码是:",r.status_code)
print("cookies是:",r.cookies)
print("cookies values是:",r.cookies['PHPSESSID'])
requests(一): 发送一个json格式的post请求的链接:
https://www.cnblogs.com/Simple-Small/p/9830270.html
request高级用法链接:
http://2.python-requests.org/zh_CN/latest/user/advanced.html
2.3. 图片和短信的处理方式
1.屏蔽它
2.找一个万能验证码
3.数据库实时查找
4.手动填写
2.4后续的接口需用到cookie才能操作
#充值
recharge_url="http://***"
recharge_data={"mobilephone":"***","amount":"100"}
recharge_res=requests.get(recharge_url,recharge_data,cookies=r.cookies)
print("充值结果:",recharge_res.json())
print("状态码:",recharge_res.status_code)
2.5关于headers
import requests
# headers
url ='https://***'
date={"email":"***","password":"***","remember":"***",}
r=requests.post(url,date,headers={})
print(r)
print("响应头是:",r.headers)
print("响应状态码是:",r.status_code)
print("代理user-agent:",r.request.headers)#和上边的headers不一样,这个是请求头
解决方法是:
import requests
# headers
url ='https://***'
date={"email":"***","password":"***","remember":"***",}
header={'User-Agent': 'Mozilla/5.0'}#这个是伪装的
r=requests.post(url,date,headers=header)
print(r)
print("响应头是:",r.headers)
print("响应状态码是:",r.status_code)
print("代理user-agent:",r.request.headers)#请求头
注意:r.request.headers,响应头是拿不到请求头的,如果想要拿到请求头必须加request