用splinter實現163郵箱的自動登陸

簡述

本篇文章簡述了使用python的splinter實現163郵箱的自動登陸,介紹了splinter自動化測試工具的使用,以及mac環境下的配置;html

splinter簡介

splinter,它是用來作自動化測試的,能夠用Python程序模擬人操做瀏覽器,好比點擊按鈕,輸入帳號和密碼,cookie操做等python

官方文檔git

基本環境的安裝(mac下)

  1. 在python官方網站在官網下載python2.7github

  2. 安裝pip,pip是經常使用的Python包管理工具,相似於Java的maven。用python的同窗,都離不開pip。chrome

    $ sudo easy_install pip
  3. 使用pip安裝splinter,splinter須要python2.7,不支持Python3.5瀏覽器

    $ pip install splinter
    $ pip uninstall splinter # 刪除時使用
  4. 安裝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

運行後發現,簡單的驗證碼能夠識別(無粘連),複雜的仍然識別不了.須要進一步的處理才行.

相關文章
相關標籤/搜索