前面我们做了一个xsrf的知乎的模拟登录,那么今天将会给大家分享一下小弟写的一段带验证码的登录脚本。

今天我们要做的是testerhome的模拟登录,在做这个模拟登录的时候,我发现需要验证码才能登录。那么这里的自动登录,我们首先要面对的问题就是验证码。
我在页面元素中定位到了验证码图片的服务器地址,想通过去服务器地址取验证码图片,然后手动输入验证码去实现模拟的自动登录,然后,首先要解决的就是验证码的获取,展示,以及关闭和。其实输入这里不是什么大问题。这里这段代码,我搞了两天才搞出来。下面分享给大家。
importrequestsfromPILimportImageimportosimporttimessesion = requests.session()headers = {'Connection':'keep-alive','Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Language':'zh-CN,zh;q=0.8','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36','Accept-Encoding':'gzip, deflate, sdch','server':'nginx',}login_data = {'username':'',# 替换为账号'password':'',# 替换为密码'Referer':'https://testerhome.com/',}captchaurl ='https://testerhome.com/rucaptcha/'url ='https://testerhome.com/account/sign_in'r = ssesion.get(captchaurl,headers=headers)

defoncaptcha():

f =open('C:\\Users\\admin\\Desktop\\captcha.jpg','wb')f.write(r.content)cap = Image.open('C:\\Users\\admin\\Desktop\\captcha.jpg')captch = Image._show(cap)time.sleep(5)captcha ='taskkill/f /IM dllhost.exe'os.system(captcha)Captcha =input('captcha:')returncaptch,Captchaoncaptcha()这里这段代码笔者做的时候难点就是验证码的图片的展示,以及定时的关闭。因为没有接触过这块儿,所以也做了两天的时间。
在这里我只给大家解读一下oncaptcha函数里的代码。上面的代码实在是讲过太多次了,就不做解读了。
第一部分,我们将获得到的返回内容,以二进制的形式写入到指定的地址和文件中
然后,通过Pillow(Python3.5)模块的Image.show()方法,打开win的图片查看器,展示验证码图片
接着,我使用time模块的time.sleep()方法设置了一个休眠期,休眠时间为5s
然后我通过os模块的os.system()方法去杀掉了win里面的图片查看器的进程,关闭了验证码
最后使用input()方法,输入验证码
为什么我这里使用os.system呢?因为我没有找到其他的关闭验证码图片的方法!然后...我想了想,这个图片验证码是调了win的服务进行展示,所以就利用os.system去杀掉它的进程进行关闭。
好了,最难得部分已经解决了,那么我们来看看完整的模拟登录的代码:
importrequestsfromPILimportImageimportosimporttimessesion = requests.session()headers = {'Connection':'keep-alive','Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Language':'zh-CN,zh;q=0.8','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36','Accept-Encoding':'gzip, deflate, sdch','server':'nginx',}login_data = {'username':'',# 替换为账号'password':'',# 替换为密码'Referer':'https://testerhome.com/',}captchaurl ='https://testerhome.com/rucaptcha/'url ='https://testerhome.com/account/sign_in'r = ssesion.get(captchaurl,headers=headers)

defoncaptcha():

f =open('C:\\Users\\admin\\Desktop\\captcha.jpg','wb')f.write(r.content)cap = Image.open('C:\\Users\\admin\\Desktop\\captcha.jpg')captch = Image._show(cap)time.sleep(5)captcha ='taskkill/f /IM dllhost.exe'os.system(captcha)returncaptchdeflogin():oncaptcha()Captcha =input('captcha:')login_data['captcha']=Captcharesponse = ssesion.get(url,headers= headers,data= login_data,)print(response)if__name__ =='__main__':login()
嗯哼,这次的分享就到这里,有兴趣的朋友可以自己多多练习。

转载于:https://www.cnblogs.com/rookie-c/p/5753401.html

验证码模拟登录TestHome相关推荐

  1. 使用第三方打码平台图鉴识别滑动验证码模拟登录

    文章目录 一.图鉴的账户注册 识别流程 二.欧模网案例滑动验证码模拟登录 页面分析 三.代码分析 四.欧模网案例展示 总结 一.图鉴的账户注册 图鉴网页地址: http://www.ttshitu.c ...

  2. python—简单数据抓取四(利用超级鹰的ocr识别图片验证码模拟登录超级鹰网站、利用百度云的ocr识别自如租房网价格图片获取到自如网的价格)

    学习目标: python学习二十四 -简单数据抓取四 学习内容: 1.利用超级鹰的ocr识别图片验证码模拟登录超级鹰网站 2.利用百度云的ocr识别自如租房网的价格图片,获取到自如网的价格数据 1.利 ...

  3. 识别验证码模拟登录微博

    前言:在微博进行模拟登录时需要点击验证码,使用网上打码平台来对验证码进行识别,完成登录. 1.模拟登录: 首先登录微博:https://passport.weibo.cn/signin/login 我 ...

  4. 模拟登录QQ判断是否需要验证码

    老生常谈的问题了,在模拟登录之前,判断是否需要验证码: https://ssl.ptlogin2.qq.com/check?uin=QQ号码&appid=1003903&js_ver= ...

  5. python爬虫登录有验证码_大神教你用Python爬虫模拟登录带验证码网站

    爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法.python提供了强大的url库,想做到这个并不难.这里以登录学校教务系统为例,做一个简单的例子. 首先得明白cookie的作用, ...

  6. python 网站发送验证码_Python爬虫模拟登录带验证码网站

    爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法.python提供了强大的url库,想做到这个并不难.这里以登录学校教务系统为例,做一个简单的例子. 首先得明白cookie的作用, ...

  7. 2019年最新 Python 模拟登录知乎 支持验证码

    2019年最新 Python 模拟登录知乎 支持验证码和保存 Cookies 知乎的登录页面已经改版多次,加强了身份验证,网络上大部分模拟登录均已失效,所以我重写了一份完整的,并实现了提交验证码 (包 ...

  8. python爬虫——利用超级鹰识别验证码并进行古诗网进行模拟登录

    目录 前言 一.超级鹰的注册 二.利用xpath解析登录页面的验证码图片 三.利用超级鹰识别获取验证码 四.模拟浏览器发送请求进行模拟登录 五.验证是否模拟登录成功 前言 本文章是利用python爬虫 ...

  9. 新浪微博模拟登录分析(含验证码)

    实验室项目结题需要爬取新浪微博的内容做实验,师兄提供了一份已实现的微博爬虫系统.本身可以轻松愉快的完成语聊收集这一部分,然而自己的微博账号始终登录失败.究其原因,结果是登录时需要验证码.而系统对于需要 ...

最新文章

  1. ASP.NET中DataGrid鼠标经过感知以及点击行弹出窗口
  2. 你就是你自己paper最好的审稿人:宾大苏炜杰提出peer review新机制
  3. SAP PM 初级系列22 - IW38可以批量处理维修工单
  4. 闪电网络运行过程中存在的一些问题
  5. boost::geometry模块多边形叠加示例
  6. 关于reduce中遍历2次数据的问题
  7. C指针详解(经典,非常详细)
  8. 原生js cookie的使用实例setCookie()、getCookie()方法
  9. Java图片处理(二)图片加水印
  10. 软件构造学习笔记-实验1
  11. c#反混淆工具de4dot 一般混淆都可以解决
  12. Linus 在圣诞节想提前放假做了这些解释,哈哈哈
  13. Kubernetes-NodePort(十七)
  14. EverWeb for Mac(网页设计软件)
  15. 完美解决电脑老是弹出广告窗口!
  16. java服务端–支付宝APP支付接口
  17. Trainning 1 DAY
  18. λ-矩阵(矩阵相似的条件)
  19. WIN10 共享 访问WIN7提示 出现“你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问
  20. cisco交换机dhcp***防范

热门文章

  1. ES系列3-ES中基本概念
  2. 中科大少年班,官方公布48名新生名单,有人因偶像曹原,有人只是不想经历高三...
  3. 电磁继电器与固态继电器
  4. 记账本借还款管理,如何搜索查看借款
  5. WebXR教程大全之如何使用 A-Frame 制作 WebXR 游戏(教程含源码)
  6. 区块链和人工智能:完美匹配
  7. 微信收费的真相,你不可不知道!
  8. Ubuntu Linux的安装
  9. centos安装chrome 无法运行 Running as root without --no-sandbox is not supported ygote_host_impl_linux.cc
  10. 问题 H: 迷宫问题