我要恢复下表中的号码: the site
<table class="table table-hover table-inx">
<tbody><tr>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
<td class=""><label for="RentNet">Miete (netto)</label></td>
<td>478,28 €</td>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
<td class=""><label for="Rooms">Zimmer</label></td>
<td>4</td>
</tr>
</tbody></table>
我想这种奇怪的格式是因为表条目是可选的。我使用驱动程序进入表,通过css选择器(“table.table.table hover”)查找元素,我看到如何轻松地遍历<tr>
标记。但是,如何找到第二个保存数据的<td>
,在<tr>
和<label for="Rooms"
>;中?
有没有比“找到只有一个数字的td字段”或加载详细信息页更优雅的方法?
This similar question没有帮到我,因为那里有一个id
编辑:
我刚刚发现了一个关于Xpath/CSS选择器的very helpful cheat sheet,它发布在一个相关问题的答案中:它包含引用子/父、下一个表条目等的方法
你试过xpath吗?Firebug是复制xpath的好工具。它将使用索引来选择所需的元素。当元素没有名称或ID时,它特别有用
编辑:不知道为什么我被否决了?我去了网站,发现XPath Firebug给了我:
为了得到4,只要:
要获取“rooms”的所有元素,只需使用部分xpath逐xpath驱动查找元素,如下所示:
最后,您可能可以使用页面源获取数据。 首先,让我们创建一个函数,在输入页面源时输出房间列表:
定义了该函数后,我们可以通过以下方式检索房间号列表:
它应该输出:
使用xpath,可以创建对包含另一个元素的元素的搜索,如下所示:
变量
elem
现在将保存“Rooms”标签行中的第二个td元素(这正是您要查找的)。您还可以将tr元素分配给变量,然后处理行中的所有数据,因为您知道单元格结构(如果您想处理标签和数据)。您可以使用
driver.find_element_by_xpath()
选择适当的td
标记。应该使用的XPath
表达式如下:这将选择属性等于
Rooms
的for
标记,然后导航到其父元素td
,然后导航到以下元素td
。所以你的密码是:
XPath表达式的一个实际例子是here。
相关问题 更多 >
编程相关推荐