selenium + python 获取table数据的示例讲解


Posted in Python onOctober 13, 2018

方法一:

<code class="language-python">""" 
根据table的id属性和table中的某一个元素定位其在table中的位置 
table包括表头,位置坐标都是从1开始算 
tableId:table的id属性 
queryContent:需要确定位置的内容 
""" 
def get_table_content(tableId,queryContent): 
  arr = [] 
  arr1 = []  
  table_loc = (By.ID,tableId) 
  # 按行查询表格的数据,取出的数据是一整行,按空格分隔每一列的数据 
  table_tr_list = driver.find_element(*table_loc).find_elements(By.TAG_NAME, "tr") 
  for tr in table_tr_list: 
    arr1 = (tr.text).split(" ") #以空格拆分成若干个(个数与列的个数相同)一维列表 
    # print(tr.text) 
    # print(arr1) 
    arr.append(arr1)  #将表格数据组成二维的列表 
 
  #循环遍历table数据,确定查询数据的位置 
  for i in range(len(arr)): 
    for j in range(len(arr[i])): 
      if queryContent== arr[i][j]: 
        print("%r坐标为(%r,%r)" %(queryContent,i+1,j+1)) 
 
get_table_content("myTable","第二行第二列")</code>

方法二:

"""
根据table的id属性和table中的某一个元素定位其在table中的位置
table包括表头,位置坐标都是从1开始算
tableId:table的id属性
queryContent:需要确定位置的内容
"""
def get_table_content(tableId,queryContent):
 
  # 按行查询表格的数据,取出的数据是一整行,按空格分隔每一列的数据
  table_tr_list = driver.find_element(By.ID, tableId).find_elements(By.TAG_NAME, "tr")
  table_list = [] #存放table数据
  for tr in table_tr_list:  #遍历每一个tr
    #将每一个tr的数据根据td查询出来,返回结果为list对象
    table_td_list = tr.find_elements(By.TAG_NAME, "td")
    row_list = []
    print(table_td_list)
    for td in table_td_list:  #遍历每一个td
      row_list.append(td.text)  #取出表格的数据,并放入行列表里
    table_list.append(row_list)
 
  # 循环遍历table数据,确定查询数据的位置
  for i in range(len(table_list)):
    for j in range(len(table_list[i])):
      if queryContent== table_list[i][j]:
        print("%r坐标为(%r,%r)" %(queryContent,i+1,j+1))
 
get_table_content("myTable","第二行第二列")

方法三:

"""
根据CSS选择器和table中的某一个元素定位其在table中的位置
table包括表头,位置坐标都是从1开始算
cssSelector:table的CSS选择器属性
queryContent:需要确定位置的内容
"""
def get_table_content(cssSelector,queryContent):
  locator = cssSelector + ">tbody>tr"
  table_list = []
  table_tr_list = driver.find_elements(By.CSS_SELECTOR, locator)[1:] #去掉表头
  for tr in table_tr_list:
    row_list = []
    table_td_list = tr.find_elements(By.TAG_NAME,"td")
    for td in table_td_list:
      row_list.append(td.text)
    table_list.append(row_list)
 
  for i in range(len(table_list)):
    for j in range(len(table_list[i])):
      if queryContent== table_list[i][j]:
        print("%r坐标为(%r,%r)" %(queryContent,i+1,j+1))
 
get_table_content("#myTable","第二行第二列")

以上这篇selenium + python 获取table数据的示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的gevent框架的入门教程
Apr 29 Python
python 中的int()函数怎么用
Oct 17 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
朴素贝叶斯Python实例及解析
Nov 19 Python
对pandas处理json数据的方法详解
Feb 08 Python
python实现雪花飘落效果实例讲解
Jun 18 Python
python 多进程共享全局变量之Manager()详解
Aug 15 Python
python集合常见运算案例解析
Oct 17 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 Python
python 字符串格式化的示例
Sep 21 Python
python中函数返回多个结果的实例方法
Dec 16 Python
Python3.4 splinter(模拟填写表单)使用方法
Oct 13 #Python
小白入门篇使用Python搭建点击率预估模型
Oct 12 #Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 #Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 #Python
selenium+python 对输入框的输入处理方法
Oct 11 #Python
python中的json总结
Oct 11 #Python
python tkinter界面居中显示的方法
Oct 11 #Python
You might like
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
PHP curl批处理及多请求并发实现方法分析
2018/08/15 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
JavaScript中数据结构与算法(五):经典KMP算法
2015/06/19 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
2017/12/28 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
python win32 简单操作方法
2017/05/25 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
HTML5 canvas基本绘图之填充样式实现
2016/06/27 HTML / CSS
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
职工趣味运动会开幕词
2016/03/04 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers
vue router 动态路由清除方式
2022/05/25 Vue.js