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中的strftime()方法的使用
May 22 Python
最大K个数问题的Python版解法总结
Jun 16 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
May 16 Python
Django如何实现内容缓存示例详解
Sep 24 Python
python使用zip将list转为json的方法
Dec 31 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
Python3.5运算符操作实例详解
Apr 25 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
Jun 14 Python
django使用graphql的实例
Sep 02 Python
Python Charles抓包配置实现流程图解
Sep 29 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
Dec 08 Python
matplotlib画混淆矩阵与正确率曲线的实例代码
Jun 01 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
PHP 中的一些经验积累
2006/10/09 PHP
图书管理程序(一)
2006/10/09 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
js判断浏览器类型的方法
2013/08/07 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
Python 中开发pattern的string模板(template) 实例详解
2017/04/01 Python
Sanic框架请求与响应实例分析
2018/07/16 Python
numpy中的meshgrid函数的使用
2019/07/31 Python
python psutil模块使用方法解析
2019/08/01 Python
详解Anaconda 的安装教程
2020/09/23 Python
python中count函数知识点浅析
2020/12/17 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
2019年.net常见面试问题
2012/02/12 面试题
优秀会计求职信
2014/07/04 职场文书
2014年学生会工作总结
2014/11/07 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
六一亲子活动感想
2015/08/07 职场文书
关爱留守儿童主题班会
2015/08/13 职场文书
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python