您的位置:首页 > 编程语言 > Python开发

Python实现浏览器自动化操作

2015-02-11 15:19 260 查看

最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用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)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: