splinter安装与入门
来源:互联网 发布:python绝技 pdf 中文 编辑:程序博客网 时间:2024/05/19 04:02
安装
splinter安装
pip安装
pip install splinter
以上安装会同时安装selenium。
源码安装
git clone git://github.com/cobrateam/splinter.gitcd splinterpython setup.py install
Splinter的使用必修依靠Cython、lxml、selenium这三个软件.selenium在安装splinter会自动被安装。
pip install Cythonpip install lxml
安装测试
安装完成后,可以直接在python的交互环境中验证是否安装成功。
>>> from splinter.browser import Browser>>> browser = Browser()#默认使用Firefox,如果未安装会报错>>> b = Browser("chrome")#指定浏览器,使用chrome浏览器
如果没有错误会打开Chrome浏览器。
下面的代码,会让上面打开的浏览器里打开百度首页。
>>> b.visit("http://www.baidu.com/")
异常
执行可能会出如下错误:
1.geckodriver’ executable needs to be in PATH.
Traceback (most recent call last): File "C:\Users\xuhuan\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 74, in start stdout=self.log_file, stderr=self.log_file) File "C:\Users\xuhuan\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 707, in __init__ restore_signals, start_new_session) File "C:\Users\xuhuan\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 990, in _execute_child startupinfo)FileNotFoundError: [WinError 2] 系统找不到指定的文件。
这是缺少geckodriver,到https://github.com/mozilla/geckodriver/releases下载指定的版本,然后将解压的位置放入系统的环境变量中。
2.未安装Firefox浏览器
报错原因,splinter默认使用浏览器firefix。
如果要splinter支持Chrome浏览器,需安装chromedriver。到https://chromedriver.storage.googleapis.com/index.html下载指定版本的chromedriver,同geckodriver一样,将解压的位置放入系统的环境变量中。
使用
利用百度搜索
百度的首页应该都见过,关键就是一个输入框,一个百度一下的按钮。搜索发起就是在文本框输入想输入的内容,点击百度一下的按钮即可。目前百度搜索可以只在文本框输入内容就会自动发起搜索。但是如果多次搜索操作,还是需要点击百度一下的按钮的。
所以要实现百度自动搜索只需要两步:
- 将要搜索的内容填充到搜索框
- 点击百度一下按钮
先来分析下百度首页,如下图:
由上可以发现,百度搜索框input的id=kw,name=wd。百度一下按钮的id=su。
下面就是splinter如何操作浏览器了。
splinter操作浏览器使用splinter的Browser。通过API发现可以我们想要的填充数据和点击方法。
填充数据
通过api可以看出,使用fill或fill_form填充数据似乎只能通过name填充。
选中页面某个控件
可以看出,splinter提供了丰富的api来进行页面的匹配。
通过上面的介绍,应该可以取得我们想要的元素了,下面就是对取得元素的操作。
这里只先说点击的操作,其他的可以参见splinter元素操作api.
通过上面的介绍,自动百度搜索的代码就呼之欲出了。
# -*- coding: utf-8 -*-from splinter.browser import Browserb = Browser("chrome")b.visit("http://www.baidu.com") dict={"wd":"splinter"}#b.fill("wd","splinter")b.fill_form(dict)button = b.find_by_value(u"百度一下")button.click()
当然上面的实现只是一种方式,通过api列表就可以发现好多不同的实现方式。比如,查看splinter元素操作api发现一个fill(value)的方法,也可以对选中的元素赋值,而不需要使用Browser对象。
text = b.find_by_id("kw")text.fill("splinter")
这样同样可以实现
dict={"wd":"splinter"}或b.fill("wd","splinter")
- splinter安装与入门
- python splinter安装与使用
- Python splinter安装与使用
- splinter安装
- python安装splinter
- Splinter
- python setuptools splinter安装报错UnicodeDecodeError
- 测试工具----Splinter安装环境的配置
- Windows中Splinter的安装和使用
- Python自动化脚本splinter框架chromedriver的安装
- Red5安装与入门
- Red5安装与入门
- NAnt安装与入门
- EPICS入门与安装
- Kafka 安装与入门
- Storm 入门与安装
- Red5安装与入门
- Memcache安装与入门
- Spring MVC常用的注解
- KM算法
- 单页应用跳转实现浅析-demo篇
- Appium 日常干货分享
- Vector,ArrayList,LinkedList,SynchronizedList
- splinter安装与入门
- Java事务处理全解析(四)—— 成功的案例(自己实现一个线程安全的
- Service
- 阿里中间件技术栈与架构师能力图
- javafx日期控件
- 数据结构-类似并查集建
- 图论矩乘——BZOJ1706/Luogu2886 [USACO07NOV]Cow Relays
- JVM堆内存参数优化,让性能飞起来
- 1044: 谁家孩子跑最慢*