【发布时间】:2019-12-07 19:10:19
【问题描述】:
我想从两个具有相同类的不同表中获取或选择数据。
我尝试从“soup.find_all”中获取它,但格式化数据变得越来越困难。
有许多表具有相同的类。我只需要从表格中获取值(无标签)。
网址:https://www.redbook.com.au/cars/details/2019-honda-civic-50-years-edition-auto-my19/SPOT-ITM-524208/
表 1:
<div class="bh_collapsible-body" style="display: none;">
<table border="0" cellpadding="2" cellspacing="2" class="prop-list">
<tbody>
<tr>
<td class="item">
<table>
<tbody>
<tr>
<td class="label">Rim Material</td>
<td class="value">Alloy</td>
</tr>
</tbody>
</table>
</td>
<td class="item">
<table>
<tbody>
<tr>
<td class="label">Front Tyre Description</td>
<td class="value">215/55 R16</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td class="item">
<table>
<tbody>
<tr>
<td class="label">Front Rim Description</td>
<td class="value">16x7.0</td>
</tr>
</tbody>
</table>
</td>
<td class="item">
<table>
<tbody>
<tr>
<td class="label">Rear Tyre Description</td>
<td class="value">215/55 R16</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td class="item">
<table>
<tbody>
<tr>
<td class="label">Rear Rim Description</td>
<td class="value">16x7.0</td>
</tr>
</tbody>
</table>
</td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div> // I thing this is a extra close </div>
表 2:
<div class="bh_collapsible-body" style="display: none;">
<table border="0" cellpadding="2" cellspacing="2" class="prop-list">
<tbody>
<tr>
<td class="item">
<table>
<tbody>
<tr>
<td class="label">Steering</td>
<td class="value">Rack and Pinion</td>
</tr>
</tbody>
</table>
</td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>// I thing this is a extra close </div>
我尝试过的:
我尝试从 Xpath 获取第一个表格内容,但它提供了值和标签。
table1 = driver.find_element_by_xpath("//*[@id='features']/div/div[5]/div[2]/div[1]/div[1]/div/div[2]/table/tbody/tr[1]/td[1]/table/tbody/tr/td[2]")
我尝试拆分数据,但没有成功。如果您想检查,请提供页面的 URL
【问题讨论】:
-
您可以使用 xpath 将表获取为 python 的列表,并使用索引
tables_list[0]或tables_list[1]在列表中选择表,然后使用 xpath 从该单个表中获取值。 -
你能解释一下吗?不知道如何使用它们
-
您不必在 xpath 中使用所有这些
div。大多数情况下,您可以使用//跳过它们以获得预期的元素 -
仅获取必须在 xpath 中使用
td[@class="value"]的值 -
使用
xpath获取所有表(或具有某些类的表),然后使用索引获取仅需要的表并使用其他xpath从表中获取值。尝试创建一个xpath会更简单
标签: python html selenium selenium-webdriver beautifulsoup