本篇文章简述了使用python的splinter实现163邮箱的自动登陆,介绍了splinter自动化测试工具的使用,以及mac环境下的配置;html
splinter,它是用来作自动化测试的,能够用Python程序模拟人操做浏览器,好比点击按钮,输入帐号和密码,cookie操做等python
官方文档git
在python官方网站在官网下载python2.7github
安装pip,pip是经常使用的Python包管理工具,相似于Java的maven。用python的同窗,都离不开pip。chrome
$ sudo easy_install pip
使用pip安装splinter,splinter须要python2.7,不支持Python3.5浏览器
$ pip install splinter $ pip uninstall splinter # 删除时使用
安装chrome所需的驱动bash
$ brew install chromedriver
配置好相关环境就能够开始写代码了,代码很简单,对照官方参考手册很快就能玩起来,其实相比之下感受配置环境反而复杂多了cookie
from splinter import Browser browser = Browser('chrome') browser.visit('https://mail.163.com') # 163的登陆框在iframe中,因此没法使用dom查找,能够splinter提供的相关API with browser.get_iframe('x-URS-iframe') as iframe: iframe.find_by_name('email').fill('yourName') iframe.find_by_name('password').fill('yourPassWord') iframe.find_by_id('dologin').click() iframe.find_by_text('继续登陆').click()
上述代码实现了163的简单登陆,可是对于验证码便无能为力了,咱们能够使用如下开源工具来进行简单的验证码识别dom
Tesseract是一款谷歌公司正在维护的开源的光学字符识别(OCR)引擎python2.7
pytesseract是对Google Tesseract的一层python封装,更方便的调用Tesseract
PIL:Python Imaging Library,是Python平台的图像处理库。
PIL官方只有32位的安装文件,64位安装时会提示找不到python的安装路径。网上有非官方的64位库(官方源码编译版),叫作pillow。Pillow是PIL的替代版本。
安装运行环境
brew install tesseract pip install pytesseract pip install Pillow
快速开始
进入你的项目目录中,执行如下代码:
from PIL import Image import pytesseract im = Image.open('cp.jpg') print (pytesseract.image_to_string(im)) # 会输出验证码图片转成的文字,好比abcd
运行后发现,简单的验证码能够识别(无粘连),复杂的仍然识别不了.须要进一步的处理才行.