博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python实现浏览器自动化操作
阅读量:6657 次
发布时间:2019-06-25

本文共 1338 字,大约阅读时间需要 4 分钟。

原文地址:
作者:
  最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用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)登录截图
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://xfato.baihongyu.com/

你可能感兴趣的文章
day3.字符串的索引与切片
查看>>
javaweb 字符集
查看>>
FBV和CBV装饰器
查看>>
android toolbar 显示返回按钮并改变按钮颜色
查看>>
call() apply() bind() 异同
查看>>
高级程序员职责
查看>>
matlab 直方图均衡化(含rgb)
查看>>
13个Cat命令管理(显示,排序,建立)文件实例
查看>>
2019年今日头条机试_JAVA后台岗_第二题
查看>>
java生成解析xml的另外两种方法JAXB
查看>>
使用Spring配置数据源JdbcTemplate
查看>>
nginx中root和alias的区别
查看>>
JDBC学习笔记
查看>>
演示一个使用db vault进行安全控制的示例
查看>>
240. Search a 2D Matrix II - Medium
查看>>
痞子衡嵌入式:常用的数据差错控制技术(3)- 和校验(Checksum)
查看>>
psycopg2 (python与postgresql)
查看>>
(转载)IOS学习笔记15——SQLite数据库
查看>>
SQL Server 使用 Hierarchyid 操作层次结构数据
查看>>
深入理解OSGI:Java模块化之路
查看>>