我正在尝试在以下网站中抓取权限表:https://register.fca.org.uk/ShPo_FirmDetailsPage?id=001b000000MfaDiAAJ
我正在试着找出xpath是否能够找到一个带有文本的特定类,例如这个(请注意ID是随机的,因此无法使用它们定位,并且每个表的类也相同)
就购房计划提供咨询
<div id="a2Nb000000035ohEAA" class="collapse DisciplineDetails PassportDetails PermDesc">
<h3 class="PermissionsListHeader">Advising on a home purchase plan</h3>
<br>
<br>
</div>
<ul class="PermissionConditionsList">
<li class="PermissionsConditionsItem">
Customer Type
<ul class="PermCondsLimitationsList">
<li style="list-style: none"><span id="j_id0:j_id1:j_id110:regActTable:0:j_id531:0:j_id533:0:j_id535:0:j_id538"></span></li>
<li class="PermCondsLimitationsItem Popover">Customer</li>
</ul>
</li>
</ul>
<ul class="PermissionConditionsList">
<li class="PermissionsConditionsItem">
Investment Type
<ul class="PermCondsLimitationsList">
<li style="list-style: none"><span id="j_id0:j_id1:j_id110:regActTable:0:j_id531:1:j_id533:0:j_id535:0:j_id538"></span></li>
<li class="PermCondsLimitationsItem Popover">Home purchase plans</li>
</ul>
</li>
</ul>
</div>
答案 0 :(得分:0)
如果要获取包含特定文本的元素的类,可以使用以下xpath:
//h3[text()='Advising on a home purchase plan']/@class
如果你需要获得整个div,请使用:
//div[text()='Advising on a home purchase plan']
您的要求不明确。如果这不是您想要的,请用预期的输出解释更多。
答案 1 :(得分:0)
但是,很难理解你想要实现的目标..据我所知,你需要根据是否解析 PermCondsLimitationsItem Popover 类值(在本例中为Customer) PermissionsListHeader 类属性值等于&#34; 就购房计划提供建议&#34;。如果是,则保存 PermCondsLimitationsItem Popover 类属性的值。
所以以下逻辑应该做的事情。
解析&lt; h3&gt; 并测试初始条件:
// H3 [@class =&#39; PermissionsListHeader&#39;] //文本()
如果属性值等于&#34;就购房计划提供建议&#34;解析 PermCondsLimitationsItem Popover 类。
// li [@class =&#39; PermCondsLimitationsItem Popover&#39;] // text()
如果条件不满意,只需填空格等。