博客园登录输入用户名和密码后,还需要正确的验证码,但由于验证码经常变化,所以期望绕过登录步骤。
关键点:使用session保持会话
代码部分:
# coding:utf-8
import requests
#使用session保持会话
s = requests.session()
#获取登录成功之前的请求cookies
login_url = "https://account.cnblogs.com/signin"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"} # get方法加个User-Agent就可以了
r1 = s.get(login_url, headers=headers,verify=False)
print('\n',"登录前的cookies:",r1.cookies,'\n') # 打印登录前的cookies
# 通过界面登录后,抓取登录成功之后的响应cookie,并添加到session会话中
c = requests.cookies.RequestsCookieJar()
c.set('.CNBlogsCookie', 'AA649DBC967D586D5AA167AEDDxA95F8DF79B') # 填上面抓包内容
c.set('.Cnblogs.AspNetCore.Cookies','CfDJ8DeX5lbS3y-Aaf98xzYTo4XKcEFzNGzha_oikNm-uOelq7_3i3BHH-O0') # 填上面抓包内容(这个cookies不是固定的,是会变化的)
s.cookies.update(c)
print('\n',"登录后的cookies:",r1.cookies,'\n') # 打印更新后的cookies
# 进入用户首页,查看登录用户的信息
home_url = "https://home.cnblogs.com/user/CurrentUserInfo"
r2 = s.get(home_url,verify=False)
print(r2.text)
参考资料:https://www.cnblogs.com/yoyoketang/p/6838596.html
拓展资料:https://www.cnblogs.com/lingxia/p/9074620.html
网友评论