selenium + python 獲取table數(shù)據(jù)的示例講解
更新時間:2018年10月13日 10:35:24 作者:hh-glimmer
今天小編就為大家分享一篇selenium + python 獲取table數(shù)據(jù)的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
方法一:
<code class="language-python">""" 根據(jù)table的id屬性和table中的某一個元素定位其在table中的位置 table包括表頭,位置坐標(biāo)都是從1開始算 tableId:table的id屬性 queryContent:需要確定位置的內(nèi)容 """ def get_table_content(tableId,queryContent): arr = [] arr1 = [] table_loc = (By.ID,tableId) # 按行查詢表格的數(shù)據(jù),取出的數(shù)據(jù)是一整行,按空格分隔每一列的數(shù)據(jù) table_tr_list = driver.find_element(*table_loc).find_elements(By.TAG_NAME, "tr") for tr in table_tr_list: arr1 = (tr.text).split(" ") #以空格拆分成若干個(個數(shù)與列的個數(shù)相同)一維列表 # print(tr.text) # print(arr1) arr.append(arr1) #將表格數(shù)據(jù)組成二維的列表 #循環(huán)遍歷table數(shù)據(jù),確定查詢數(shù)據(jù)的位置 for i in range(len(arr)): for j in range(len(arr[i])): if queryContent== arr[i][j]: print("%r坐標(biāo)為(%r,%r)" %(queryContent,i+1,j+1)) get_table_content("myTable","第二行第二列")</code>
方法二:
""" 根據(jù)table的id屬性和table中的某一個元素定位其在table中的位置 table包括表頭,位置坐標(biāo)都是從1開始算 tableId:table的id屬性 queryContent:需要確定位置的內(nèi)容 """ def get_table_content(tableId,queryContent): # 按行查詢表格的數(shù)據(jù),取出的數(shù)據(jù)是一整行,按空格分隔每一列的數(shù)據(jù) table_tr_list = driver.find_element(By.ID, tableId).find_elements(By.TAG_NAME, "tr") table_list = [] #存放table數(shù)據(jù) for tr in table_tr_list: #遍歷每一個tr #將每一個tr的數(shù)據(jù)根據(jù)td查詢出來,返回結(jié)果為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) #取出表格的數(shù)據(jù),并放入行列表里 table_list.append(row_list) # 循環(huán)遍歷table數(shù)據(jù),確定查詢數(shù)據(jù)的位置 for i in range(len(table_list)): for j in range(len(table_list[i])): if queryContent== table_list[i][j]: print("%r坐標(biāo)為(%r,%r)" %(queryContent,i+1,j+1)) get_table_content("myTable","第二行第二列")
方法三:
""" 根據(jù)CSS選擇器和table中的某一個元素定位其在table中的位置 table包括表頭,位置坐標(biāo)都是從1開始算 cssSelector:table的CSS選擇器屬性 queryContent:需要確定位置的內(nèi)容 """ 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坐標(biāo)為(%r,%r)" %(queryContent,i+1,j+1)) get_table_content("#myTable","第二行第二列")
以上這篇selenium + python 獲取table數(shù)據(jù)的示例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python3?chromedrivers簽到的簡單實現(xiàn)
本文主要介紹了python3?chromedrivers簽到的簡單實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python實現(xiàn)抓取網(wǎng)頁生成Excel文件的方法示例
這篇文章主要介紹了Python實現(xiàn)抓取網(wǎng)頁生成Excel文件的方法,涉及PyQuery模塊的使用及Excel文件相關(guān)操作技巧,需要的朋友可以參考下2017-08-08使用PySpark實現(xiàn)數(shù)據(jù)清洗與JSON格式轉(zhuǎn)換的實踐詳解
在大數(shù)據(jù)處理中,PySpark?提供了強(qiáng)大的工具來處理海量數(shù)據(jù),特別是在數(shù)據(jù)清洗和轉(zhuǎn)換方面,本文將介紹如何使用?PySpark?進(jìn)行數(shù)據(jù)清洗,并將數(shù)據(jù)格式轉(zhuǎn)換為?JSON?格式的實踐,感興趣的可以了解下2023-12-12選擇Python寫網(wǎng)絡(luò)爬蟲的優(yōu)勢和理由
在本篇文章里小編給各位整理了一篇關(guān)于選擇Python寫網(wǎng)絡(luò)爬蟲的優(yōu)勢和理由以及相關(guān)代碼實例,有興趣的朋友們閱讀下吧。2019-07-07Python調(diào)用百度api實現(xiàn)語音識別詳解
這篇文章主要介紹了Python通過調(diào)用百度api實現(xiàn)語音識別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2021-12-12