1.查找提交入口和表单数据
复制验证码
<img class="verCodeImg" src="/kaptcha.jpg?v=0.5120661510713358" οnclick="verCode(this)">
只需要src———验证码这张图的路径
"/kaptcha.jpg?v=0.5120661510713358"
再将host添加得到验证码的网址
"https://www.ptpress.com.cn//kaptcha.jpg?v=0.5120661510713358"
2.提交表单完成模拟登录
import requests
url = "https://www.ptpress.com.cn/login"
# 获取验证码
sess = requests.Session()
verifyCodeUrl = "https://www.ptpress.com.cn//kaptcha.jpg?v=0.5120661510713358" # 验证码地址
rq_code = sess.get(verifyCodeUrl) # 获取验证码照片
with open("./tmp/code.png", "wb") as f: # "wb"以二进制写的方式打开
f.write(rq_code.content)
#将验证码写进来
verifyCode = "*****"
data = {
"username": "******", # 用户名
"password": "******", # 密码
"verifyCode": verifyCode # 验证码
}
rq = sess.post(url, data=data)
# 查看是否登陆
rq.status_code
rq.url # 返回主页面而不是登录页面的网址即成功登陆
3.使用表单登录的注意事项
所有代码需在同一个会话中执行
使用Cookie登陆方式实现模拟登陆
# 使用Cookie模拟登录
cookie = "*******************************************************"
Cookies = {}
# 对cookie进行分割
for i in cookie.split(";"): # 以分号进行分割
key, value = i.split("=") # 以=进行分割
Cookies[key] = value
host = "https://www.ptpress.com.cn/"
rq = requests.get(host, cookies=Cookies) # 以登陆状态获取目标网站信息
使用selenium模拟登录
# 使用selenium模拟登录
from selenium import webdriver
host = "https://www.ptpress.com.cn/"
driver = webdriver.Chrome()
driver.get(host)
driver.page_source # 获取网页源码