加密
?并且以看两种加密方式还不一样哇?有点东西!使用工具:
可以根据上图分析得知:有uaToken 和webUmidToken两个token。 分析参数肯定是要打断点的,一般有直接搜索,查看js调用堆栈,和hook查找找到参数位置。我是利用搜索找参数。 分析前先做好一些预备工作,多发几个请求,刷新页面。你会发现:
核心数据(账号、cookie、密码等)无关
,所以这个加密数据空有其架势无作用。你可以保存一个直接一直使用一个(如果可逆后台可能会根据字符串进行校验是否符合规则)。
每次刷新都会发现他在变化,鉴于前面的token都没啥作用,我大胆猜测,他也不影响登录!就先不debug分析了。
实际上他对结果也是没有影响的,这里就不进行分析,先发送请求!
不管你怎么模拟都是各种错误
,要么类型错误
,要么繁忙
,要么类型错误。(可以看得出csdn是java后台,个人感觉接口异常处理的还有问题。暴露方法了)有时候浏览器太过于局限。用fidder找到其中不同之处。用浏览器和postman发送请求找到其中参数的不同之处。
参数发送的格式!raw文本
。测试登录
,不能盲目分析
。虽然能够增加经验,但是有点浪费时间。。像csdn这次就是。。啥都没用。思路:访问登录接口,用返回的cookie访问我关注的人的文章!
import requests
from bs4 import BeautifulSoup
url='https://passport.csdn.net/v1/register/pc/login/doLogin'
header={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
'referer':'https://passport.csdn.net/login',
'origin':'https://passport.csdn.net',
'content-Type':'application/json;charset=UTF-8',
'x-requested-with':'XMLHttpRequest',
'accept':'application/json, text/plain, */*',
'accept-encoding':'gzip, deflate, br',
'accept-language':'zh-CN,zh;q=0.9',
'connection': 'keep-alive'
,'Host': 'passport.csdn.net'
}
data='{"loginType":"1","pwdOrVerifyCode":"你的密码",' \
'"userIdentification":"你的账号","uaToken":"",' \
'"webUmidToken":""}'
req=requests.post(url,data=data,headers=header)
cookies = requests.utils.dict_from_cookiejar(req.cookies)
res=req.text
print(res)
print(req.status_code)
print(cookies)
url2='https://blog.csdn.net/nav/watchers'
req2=requests.get(url2,cookies=cookies)
soup=BeautifulSoup(req2.text,'lxml')
print(soup.text)