python實現瀏覽器自動化操作

來源:互聯網
上載者:User

利用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)
-------------------------------------------

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.