请求大神帮助
最近想搞一下爬虫的模拟登陆,就想直接拿CSDN练手了,一开始还想着一篇文章写完,写到一半发现,大意了,CSDN有加密,得慢慢啃了,啃着啃着谁知道又发现问题了。
勾选preserve log 是为了查看登陆成功后,也就是页面刷新前的网页文件,我们需要搞清楚它提交了什么样的参数。
这一次账号登陆就是为了搞清楚发送给服务器的参数,在这里建议使用错误的账号和密码,进行一次失败登陆,这样会方便的找到响应的文件
这个链接使用的是post方式,是向服务器发送数据
这里就是发送的数据的详细情况,可以直观地看到我们填写的账号密码(当然我这的是错误的),不过还有其他的数据,也就是我之前说的加密啦,还是需要花时间搞一下的。
import requests
import json
# https://passport.csdn.net/v1/login/wap/login/doLogin
# post的提交链接
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/88.0.4324.104 Mobile Safari/537.36',
'accept': 'application/json,text/plain,*/*',
'connection': 'keep-alive',
'Content-Type': 'application/json;charset=UTF-8',
'refer': 'https://blog.csdn.net/m0_46104664',
}
data = {
"pwdOrVerifyCode": 你的密码,
"userIdentification": 你的账号,
}
session = requests.session()
jsondata = json.dumps(data)
html = session.post(url, headers=header, data=jsondata)
get_url = 'https://blog.csdn.net/m0_46104664'
get_header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/88.0.4324.104 Mobile Safari/537.36',
}
response = session.get(get_url, headers=get_header)
if response.status_code == 200:
print(response.text)
但是我发现 ‘https://blog.csdn.net/m0_46104664’ 这个链接直接打开是可以的,也就是下面的代码可以直接运行且会成功
import requests
get_url = 'https://blog.csdn.net/m0_46104664'
get_header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/88.0.4324.104 Mobile Safari/537.36',
}
response = requsets.get(get_url, headers=get_header)
if response.status_code == 200:
print(response.text)