python 爬虫图形验证码(Python爬虫实现验证码登录代码实例)
类别:脚本大全 浏览量:2134
时间:2021-10-08 00:52:21 python 爬虫图形验证码
Python爬虫实现验证码登录代码实例很多网站为了避免被恶意访问,需要设置验证码登录,避免非人类的访问,python爬虫实现验证码登录的原理则是先到登录页面将生成的验证码保存下来,然后人为输入后,包装后再post给服务器,实现验证,这里还涉及到了cookie,其实cookie保存在本地主机上,避免用户重复输入用户名和密码,在连接服务器的时候将访问连接和cookie组装起来post给服务器。
这里涉及到了两次向服务器post,一次是cookie,这里还自行设计想要cookie的内容,由于是要登录,cookie中存放的则是用户名和密码。第二次post则是向服务器提交验证。
这里用到python3,主要用到的包是re urllib.request http.cookiejar
上代码,借鉴了别人的代码~~~
|
import re import urllib.request import http.cookiejar #from http.comkie import cookiejar 上面那句和这句等同 loginurl = 'https://www.douban.com/accounts/login' cookie = http.cookiejar.cookiejar() opener = urllib.request.build_opener(urllib.request.httpcookieprocessor) #在已存的cookie下建立连接 params = {} params[ 'form_email' ] = '用户名' params[ 'form_password' ] = '密码' #这里写上已有的用户名和密码 params[ 'source' ] = 'http://www.douban.com/accounts/login' #从首页提交登陆 response = opener. open (loginurl,urllib.parse.urlencode(params).encode( 'utf-8' )) #urllib.parse.urlencode(params).encode('utf-8')这个是向服务 #器post的内容,可以打印一下response.geturl()请求的连接看一下 #print(response.geturl()[0:33]) #验证成功跳转至登陆页 if response.geturl()[ 0 : 33 ] = = 'https://accounts.douban.com/login' : html = response.read().decode( 'utf-8' ) #print(html),可以先打印一下文件内容,为了看到网页元素更方便的写正则,可以复制下来,在需要获取的地方用(.+?)表示,然后用group()元组来取得, #验证图片地址 imgurl = re.search( '<img id="captcha_image" src="(.+?)" alt="captcha" class="captcha_image"/>' ,html) if imgurl: url = imgurl.group( 1 ) #print(url) #将验证码以v.jpg保存在本地,在输入验证码的时候可以手工输入 res = urllib.request.urlretrieve(url, 'v.jpg' ) captcha = re.search( '<input type="hidden" name="captcha-id" value="(.+?)"/>' ,html) #print(captcha.group(1)) if captcha: vcode = input ( '请输入图片上的验证码:' ) params[ "captcha-solution" ] = vcode params[ "captcha-id" ] = captcha.group( 1 ) #这个是动态生成的,需要从网页中获得 params[ "user_login" ] = "登录" #提交验证码验证 response = opener. open (loginurl,urllib.parse.urlencode(params).encode( 'utf-8' )) if response.geturl() = = "https://www.douban.com/" : print ( "login sucess" ) |
以上所述是小编给大家介绍的python爬虫实现验证码登录详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:https://blog.csdn.net/qq_27717921/article/details/53149065
您可能感兴趣
- 宝塔面板服务器连接不上(宝塔面板后台登陆不显示验证码解决办法)
- 怎么用php开发验证码(PHP简单验证码功能机制实例详解)
- laravel多用户认证实例(Laravel框架验证码类用法实例分析)
- php 模拟登录验证码demo(PHP 模拟登陆功能实例详解)
- thinkphp标签详解(thinkphp整合系列之极验滑动验证码geetest功能)
- dedecms安全设置(织梦dedecms站点data目录位置变动调整验证码不显示的解决办法)
- dedecms后台内链如何制作(dedecms自定义表单增加验证码的方法分享)
- python opencv 标记目标(使用Python的OpenCV模块识别滑动验证码的缺口推荐)
- python 爬虫图形验证码(Python爬虫实现验证码登录代码实例)
- dedecms无缩略图怎么设置(DEDECMS转移data目录后 验证码不显示解决办法)
- springboot vue 异地登录(vue+springboot实现登录验证码)
- python识别验证码教程(Python3.5 + sklearn利用SVM自动识别字母验证码方法示例)
- dedecms验证码要怎么设置(DEDECMS 后台验证码图片不显示的多种解决方法)
- dedecms怎样找回登录密码(织梦dedecms 去掉后台登陆验证码的方法)
- dedecms自定义表单验证码(dedecms织梦验证码无法正常显示的3种解决办法)
- python自动识别旋转验证码(Python实现字符型图片验证码识别完整过程详解)
- 河南尉氏县因地制宜发展果蔬种植 水坡镇绿宝甜瓜变 金瓜(河南尉氏县因地制宜发展果蔬种植)
- 谢广坤,你这么欺负谢腾飞,良心不会痛吗(你这么欺负谢腾飞)
- 乡村爱情15 宋晓峰怀疑自己孩子,腾飞与姜奶奶亲子鉴定出结果(宋晓峰怀疑自己孩子)
- 《乡村爱情13》开播,新版刘能以假乱真,编剧思维进入瓶颈(新版刘能以假乱真)
- 当年的 白洋淀战神 练肌肉 嘎子哥也成为行走的荷尔蒙(当年的白洋淀战神)
- 肌肉小子陈康, 亚洲巨兽 黄哲勋,哪个才是你的菜(肌肉小子陈康亚洲巨兽)
热门推荐
- 如何看懂云服务器(专业云服务器主机挑选从几个方面衡量?)
- 阿里云服务器扩容了怎么恢复(一条命令解决阿里云服务器系统盘空间不足问题)
- mysql8.0.23的安装步骤(mysql 8.0.22 下载安装配置方法图文教程)
- vmware能安装macos吗(VMware15/16解锁VMware安装MacOS的步骤详解)
- php获取数据方法(php定期拉取数据对比方法实例)
- 查看docker 镜像大小(详解六种减小Docker镜像大小的方法)
- pythonexcel报表实例(对python生成业务报表的实例详解)
- 微信js开发教程(微信JSSDK分享功能图文实例详解)
- 阿里云mysql如何接入(阿里云服务器安装Mysql数据库的详细教程)
- mysql数据类型和使用方法(MySQL数据类型全解析)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9