图片验证码
1.首先定位登录的接口【在network中找到login开头的文件,观察preview是否是登录页面】
2.在login文件中拿到url,有些网站可能不需要登录就可以获取反应的数据,有些则需要登录,找到payload里的数据,观察哪几个是变量,一般除了邮箱密码和登录之外都是变量
3.爬取网页源码,使用xpath【etree.HTML】方法来定位需要获取的元素,获取需要的值,这种情况下一般变量都会带有hidden属性。
在登录页面按F12--ctrl+f 搜索需要元素--打开xpath插件--输入xpath路径验证是否为我们需要的数据。
4.在 3 中我们会获取到验证码的图片地址,这个时候我们需要将图片下载到本地【urllib.request.
urlretrieve】
注!!!:在使用urllib时会发送一次请求,这个时候会获取第一次验证码,但是后面的post请求会再次获取验证码,导致两次验证码不一样,从而无法进入主页面
所以这里使用session的方法【让两个请求变成一个请求】
# session方法,获取验证码的二进制数据保存为jpg/png格式到本地
session = requests.session()
response_code = session.get(code_url)
content_code = response_code.content
with open('yzm.jpg', 'wb