功能:实现与html标签的交互,例如用编程的方式实现对页面中某一按键的点击,实现对文本框的填写。

准备

基本用法

如想获得直观的演示效果,推荐使用ipython,实现一种交互式的命令响应。

>>> from splinter.browser import Browser

获得网页的“句柄”

>>> b = Browser(driver_name='chrome')# 此时会打开chrome浏览器,# b这个Browser对象会持有后续操作的页面# 可将其理解为页面的句柄# 也即通过操纵b来实现对页面的操纵

访问某一站点

>>> url='https://www.baidu.com'
>>> b.visit(url)# 会在浏览器中打开百度首页# 是不是很神奇,通过代码的方式实现以前手动完成的事# 更神奇的还在后面

使用百度进行关键字的检索

为避免中英文编码方式的影响,这里我们统一使用页面标签的id属性而非text属性。

如,我们按如下的方式获取百度输入框的name属性值。

>>> b.fill('wd', 'splinter')

我们可以获得百度一下所标示的按钮,然后通过代码的方式实现对该按钮的点击。

>>> btn = b.find_by_id('kw')
>>> btn.click()

或者连写:

>>> b.find_by_id('kw').click()

注,因为当前百度搜索填写关键字会触发搜索结果的显示,所以这项演示似乎看起来click和不click影响不大。

杂项

# 判断页面是否存在
>>> b.is_text_present('splinter.cobrateam.info')
True# 退出
>>> b.quit()

一个实例

我们通过如下简单的代码实现对12306网站的相关标签的设置(以代码的形式操纵而非手动):

登录

>>> from splinter.browser import Browser
>>> url = 'https://kyfw.12306.cn/otn/leftTicket/init'
>>> b = Browser(driver_name='chrome')
>>> b.visit(url)>>> b.find_by_id('login_user').click()# 点击登录按钮
>>> b.fill('loginUserDTO.user_name', '****@qq.com')
>>> b.fill('userDTO.password', '****')# 无奈,此时并不能通过简单的设置绕过验证码

以cookie的形式设置始发站、终点站以及日期

>>> b.cookie.all()# 显示当前cookie,并无站点实现信息
2
3
4
{u'BIGipServerotn': u'1977155850.38945.0000',u'JSESSIONID': u'0A01D97598F459F751C4AE8518DBFB300DA7001B67',u'__NRF': u'95D48FC2E0E15920BFB61C7A330FF2AE',u'current_captcha_type': u'Z'}
# 然后我们填写出发站,以下信息均需自己事先填写
>>> b.cookies.add({"_jc_save_fromStation":"%u4E0A%u6D77%2CSHH"})# 添加目的地
>>> b.cookies.add({u'_jc_save_toStation':'%u6C38%u5DDE%2CAOQ'})# 添加出发日期
>>> b.cookies.add({"_jc_save_fromDate":"2016-01-23"})# 注,如果需要对相关信息进行修改的话,调用的是add方法,这和字典的操作相兼容
>>> b.cookies.add({u'_jc_save_toStation':'xxxxxx'})
>>> b.cookies.all()
{u'BIGipServerotn': u'1977155850.38945.0000',u'JSESSIONID': u'0A01D97598F459F751C4AE8518DBFB300DA7001B67',u'__NRF': u'95D48FC2E0E15920BFB61C7A330FF2AE',u'_jc_save_fromDate': u'2016-01-20',u'_jc_save_fromStation': u'%u4E0A%u6D77%2CSHH',u'_jc_save_toStation': u'%u6C38%u5DDE%2CAOQ',u'current_captcha_type': u'Z'}

cookie准备完毕,reload然后开始查询:

>>> b.reload()
>>> 

Python第三方库使用——splinter相关推荐

  1. Python第三方库资源

    [转载]Python第三方库资源 转自:https://weibo.com/ttarticle/p/show?id=2309404129469920071093 参考:https://github.c ...

  2. 4行指令解决pip下载Python第三方库太慢问题(pip更换国内下载源)

     问题由来: 之前在写一篇项目博客时,pip下载Python第三方库:graphic-verification-code,实在太慢了,于是使用Python库官网下载,还是很慢,而且不断失败,下载慢且不 ...

  3. dos系统不能安装python模块,无法使用pip命令安装python第三方库的原因及解决方法...

    再dos中无法使用pip,命令主要是没有发现这个命令.我们先找到这个命令的位置,一般是在python里面的scripts文件夹里面.我们可以把dos切换到对应的文件夹,再使用pip命令就可以了. 如果 ...

  4. 查看本机中的python第三方库文档

    [转载] 原文链接:https://blog.csdn.net/weixin_43936250/article/details/105251049 本机系统为win10,在使用python编程的过程中 ...

  5. Python_note8 程序设计方法学+Python第三方库安装+os库

    实例13 体育竞技分析 自顶向下,解决复杂问题的有效方法,将一个小问题表达为若干小问题组成的形式,使用同样方法进一步解决小问题直至可以用计算机简单解决:自底向上 理解自顶向下的设计思维:分而治之:理解 ...

  6. 离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中)

    离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中) 参考文章: (1)离线安装python第三方库的实用方法:解决公 ...

  7. python如何离线安装第三方库_离线环境安装python第三方库

    python 离线环境安装python第三方库 author: yafeishi tags: AntDB,python python对于运维工作确实方便了很多,但很多比较实用的库都是第三方提供,在os ...

  8. 下面不属于python第三方库的安装方法的是-关于python中第三方库安装方法和问题解决...

    一.安装方法 方法一: 1.管理员身份启动命令行(运行--->cmd) 2.pip install 库的绝对路径和库的详细名称 :或者运用cd命令跳转到下载好的库所在的位置然后pip insta ...

  9. python中安装一个第三方库的命令格式是-无法使用pip命令安装python第三方库的彻底解决方案...

    无法使用pip命令安装python第三方库的原因及解决方法 再dos中无法使用pip,命令主要是没有发现这个命令.我们先找到这个命令的位置,一般是在python里面的Scripts文件夹里面.我们可以 ...

最新文章

  1. 数据库服务器 之 PostgreSQL数据库的日常维护工作
  2. 2021春季学期-创新设计与实践-Lesson6
  3. R语言-文本挖掘 主题模型 文本分类
  4. OpenERP Web开发
  5. GoDaddy服务器MySQL配置文件,仅供参考
  6. 【Kubernetes】离线业务:Job与CronJob
  7. http://udacity.com 和 https://www.udemy.com 请注意区分!
  8. java 数据库改操作_数据库的插入、修改、删除操作(java实现)
  9. 如何在 Ubuntu 20.04 上安装 Java
  10. 170609、Nginx配置文件详细说明
  11. wamp修改默认80端口
  12. jenkins用户凭证插件的安装
  13. Linux设置免密登录
  14. H5 下载文件到本地
  15. [路由器] k2p支持ipv6相关设置
  16. 进制转化(二进制,八进制,十进制,十六进制)详细教程
  17. MIMO技术原理、概念、现状简介
  18. 学习编程是否真的有用?
  19. autocomplete属性在谷歌浏览器不起作用
  20. 作业1:C#使用委托实现信用卡用户定时还款功能

热门文章

  1. HBase之Rowkey设计总结与实战篇
  2. Scala文件内容生成本地文件
  3. php ajax post请求数据变形,php-在AJAX调用中读取POST数据
  4. matlab用dft对连续信号做谱分析,用 DFT 对连续信号进行谱分析的误差问题有哪些?...
  5. 机器学习代码实战——K折交叉验证(K Fold Cross Validation)
  6. 类和对象编程(六):内联函数
  7. 【压缩原理】 deflate 算法
  8. 推荐一些用CRF做图像语义分割的资源
  9. 目标检测之Selective Search原理简述(转)
  10. 07.计算Nova→2.nova组件详解→2.nova-scheduler