python 操作瀏覽器

最近在研究網站自動登錄的問題,涉及到需要實現瀏覽器自動化操作,網上有不少介紹,例如使用pamie,但是隻是支持IE,而且項目也較久沒有更新了。還有就是利用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/

二、Splinter的使用
  這裏,我給出自動登錄126郵箱的案例。難點是要找到頁面的賬戶、密碼、登錄的頁面元素,這裏需要查看126郵箱登錄頁面的源碼,才能找到相關控件的id.
  例如:輸入密碼,密碼的文本控件id是pwdInput.可以使用browser.find_by_id()方法定位到密碼的文本框,
接着使用fill()方法,填寫密碼。至於模擬點擊按鈕,也是要先找到按鈕控件的id,然後使用click()方法。
由於代碼較簡單,我就只在代碼中給出註解說明工作原理。
(測試環境win7+python2.7.3+firefox)

1)登錄截圖

Python實現瀏覽器自動化操作


2)代碼
----------------------------------------
#coding=utf-8
import time
from splinter import Browser

def splinter(url):
    browser = Browser()
    #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)


轉載自:http://blog.sina.com.cn/s/blog_4deeda25010129wg.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章