使用python模拟网站登录并调用其内部接口

引入requests库
在浏览器通过f12打开开发者模式,点击登录之后观察页面跳转的url,并摘取部分header数据,以及账号密码。
因为通过浏览器观察到网站登录时账号密码传参时json格式的,在这里遇到一个问题就是如果不使用json.dumps直接使用payload的话就会登录失败也不提示什么就是把html返回来了,之后一点点尝试才发现是传参必须要json格式的。
登录成功之后就可以获取到登录的cookies去调用网站内其他的接口了
以下是代码实现:
import requests
import json
head={
‘User-Agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36’,
‘Content-Type’:‘application/json’,
‘Connection’:‘keep-alive’
}
payload={‘username’:‘’,‘password’:'**’}

#重点在这里要将字符串转为json之后再传参
res=requests.post(‘http://********/Login’,verify=False,data=json.dumps(payload),headers=head)
#print(res.headers)
#print(res.text)
#print(res.cookies.get_dict())
body={“xx”:[],“xxxx”:[]}
res=requests.post(‘http://*******//ment’,verify=False,data=json.dumps(body),cookies=res.cookies,headers=head)
print(res.content)
#python2.7使用json.loads返回的结果会变成unicode码 python3.X不存在此问题
jsonres=json.loads(res.text,ensure_ascii=False)
print(jsonres[‘data’][‘geoSummary’])

json.dumps()与json.loads()的区别?
json.dumps将普通数据转换成json格式字符串(dump string)
json.loads将json字符串转换成python json 字典(load string),转换成字典之后就可以使用[‘data’]来根据key获取相对应value值

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一名软件修理工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值