<body>
<tbody id="data-table">
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
</tbody>
</body>
我需要一種快速的方法來查找每個包含的文本<td>
我試過了
main_table = driver.find_element(By.ID, "data-table")
for i in range(3):
main_table.find_element(By.XPATH, "tr[" str(i 1) "]/td[1]").text
main_table.find_element(By.XPATH, "tr[" str(i 1) "]/td[2]").text
main_table.find_element(By.XPATH, "tr[" str(i 1) "]/td[3]").text
這非常慢......每次搜索將近
200 毫秒這個簡單的回圈需要 3 x 3 x 200 毫秒或 1.8 秒
我需要提取的實際資料更大,超過 100 個tr,每個有 5 個,td
這需要 100 多秒才能完成
有沒有更快的方法來做到這一點?
我想知道是否有一種方法可以提取主表下的所有標簽,例如
extracted_data = main_table.get_all_tags()
for tr in extracted_data:
for td in tr:
print(td.text)
我們的想法是我們提取所有子標簽資料,然后使用純 python 進一步提取子資料,而不是使用抓取它find_element
uj5u.com熱心網友回復:
嘗試:
for tr in driver.find_elements(By.XPATH, '//*[@id="data-table"]/tr'):
td1= tr.find_element(By.XPATH,'.//td[1]').text
td2= tr.find_element(By.XPATH,'.//td[2]').text
td3= tr.find_element(By.XPATH,'.//td[3]').text
uj5u.com熱心網友回復:
如果您只是在每個 td 標簽中查找文本,您可以這樣做:
main_table = driver.find_element(By.XPATH, '//*[@id="data-table"]/tr/td')
for xin main_table:
print(x.text)
uj5u.com熱心網友回復:
先識別table元素,獲取outerHtmltable元素的,然后用pandas讀取html
main_table = driver.find_element(By.XPATH, "//table[.//tbody[@id='data-table']]").get_attribute("outerHtml")
df=pd.read_html(main_table)[0]
print(df)
匯入以下庫
import pandas as pd
如果 pandas 未安裝,請先安裝
pip install pandas
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/526072.html
