利用selenium工具,可支援多種瀏覽器。網上資料比較多。經過比較,我選擇了Splinter模組,因為利用Splinter開發瀏覽器自動化操作,編寫代碼比較簡單。
一、Splinter的安裝
Splinter的使用必修依靠Cython、lxml、selenium這三個軟體。所以,安裝前請提前安裝
Cython、lxml、selenium。以下給出連結地址:
1)http://download.csdn.net/detail/feisan/4301293
2)http://code.google.com/p/pythonxy/wiki/AdditionalPlugins#Installation_no
3)http://pypi.python.org/pypi/selenium/2.25.0#downloads
4)http://splinter.cobrateam.info/
註:selenium安裝後注意下載相應的瀏覽器的驅動檔案,下到後最好和瀏覽器所在位置放一起,然後將其路徑設定為windows的環境變數
from selenium import webdriver
browser = webdriver.Chrome() # Get local session of Chrome
#如可啟動瀏覽器,設定成功
二、Splinter的使用
這裡,我給出自動登入126郵箱的案例。痛點是要找到頁面的賬戶、密碼、登入的頁面元素,這裡需要查看126郵箱登入頁面的源碼,才能找到相關控制項的id.
例如:輸入密碼,密碼的文本控制項id是pwdInput.可以使用browser.find_by_id()方法定位到密碼的文字框,
接著使用fill()方法,填寫密碼。至於類比點擊按鈕,也是要先找到按鈕控制項的id,然後使用click()方法。
由於代碼較簡單,我就只在代碼中給出註解說明工作原理。
(測試環境win7+python2.7.3+Chrome)
1)代碼
----------------------------------------
#coding=utf-8
import time
from splinter import Browser
def splinter(url):
browser
= Browser('chrome')
#login
126 email websize
browser.visit(url)
#wait
web element loading
time.sleep(5)
#fill
in account and password
browser.find_by_id('idInput').fill('xxxxxx')
browser.find_by_id('pwdInput').fill('xxxxx')
#click
the button of login
browser.find_by_id('loginBtn').click()
time.sleep(8)
#close
the window of brower
browser.quit()
if __name__ == '__main__':
websize3
='http://www.126.com'
splinter(websize3)
-------------------------------------------