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实现ping的方法
Jul 06 Python
人机交互程序 python实现人机对话
Nov 14 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
Jul 04 Python
Python实现微信机器人的方法
Sep 06 Python
python 实现PIL模块在图片画线写字
May 16 Python
Python如何爬取qq音乐歌词到本地
Jun 01 Python
如何基于pandas读取csv后合并两个股票
Sep 25 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 Python
python 实现简易的记事本
Nov 30 Python
python中openpyxl和xlsxwriter对Excel的操作方法
Mar 01 Python
Python 制作自动化翻译工具
Apr 25 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
2020/01/26 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
javascript 特殊字符串
2009/02/25 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
2018/09/03 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
wxPython中文教程入门实例
2014/06/09 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
Python递归函数实例讲解
2019/02/27 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
2014学雷锋活动总结
2014/03/09 职场文书
机械专业求职信
2014/05/25 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
公司放假通知范文
2015/04/14 职场文书