用splinter实现163邮箱的自动

发布时间:2019-10-09 10:39:42编辑:auto阅读(2266)

    简述

    本篇文章简述了使用python的splinter实现163邮箱的自动登录,介绍了splinter自动化测试工具的使用,以及mac环境下的配置;

    splinter简介

    splinter,它是用来做自动化测试的,可以用Python程序模拟人操作浏览器,比如点击按钮,输入账号和密码,cookie操作等

    官方文档

    基本环境的安装(mac下)

    1. 在python官方网站在官网下载python2.7

    2. 安装pip,pip是常用的Python包管理工具,类似于Java的maven。用python的同学,都离不开pip。

      $ sudo easy_install pip
    3. 使用pip安装splinter,splinter需要python2.7,不支持Python3.5

      $ pip install splinter
      $ pip uninstall splinter # 删除时使用
    4. 安装chrome所需的驱动

      $ brew install chromedriver

    所需代码

    配置好相关环境就可以开始写代码了,代码很简单,对照官方参考手册很快就能玩起来,其实相比之下感觉配置环境反而复杂多了

    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的简单登录,但是对于验证码便无能为力了,我们可以使用以下开源工具来进行简单的验证码识别

    • Tesseract是一款谷歌公司正在维护的开源的光学字符识别(OCR)引擎

    • 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

    运行后发现,简单的验证码可以识别(无粘连),复杂的仍然识别不了.需要进一步的处理才行.

关键字