我正在尝试使用请求模块登录具有验证码的网站。
import requests
from bs4 import BeautifulSoup
url="http://somesite.com"
with requests.Session() as s:
r = s.get(URL, headers=headers)
soup = BeautifulSoup(r.content, features="html.parser")
CaptchaImgURL = 'https://somesite.com/image.axd?uid=49a9ca-3a3e-40e7'
r = requests.get(CapImgURL)
open('ImageVerify.jpg', 'wb').write(r.content)
login_details['username']=user
login_details['passwd']=pwd
login_details['txtImgVerifyCode']=input('Enter Code: ')
login_details['button']='Log in'
r = s.post(URL, data=login_details , headers=LoginHeaders)
在这里,我先获取登录页面,然后将验证码图片保存在来自CaptchaImgURL的单独的url请求中。但是我在登录时收到无效的验证码。
每次发出请求时,同一CaptchaImgURL中的验证码图像都会更改。
当我第一次请求获取登录页面时,如何获取验证码图像?
答案 0 :(得分:0)
之前,我是在不使用登录会话requests.Session()
的情况下直接请求验证码图片的。
因此,在使用requests.Session()
发出请求后,即效果很好。
r = s.get(CapImgURL, headers=headers)