我正在尝试抓取以下站点的权限表: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>
仍然很难理解你想要实现什么。据我所了解,您需要根据PermissionsListHeader类属性值是否等于"建议购房计划"来解析PermCondsLimitationsItem Popover类值(在本例中为Customer)。如果是,那么保存PermCondsLimitationsItem Popover类属性的值。
所以下面的逻辑应该做这件事。
-
解析,测试初始条件:
//h3 [@class = ' PermissionsListHeader ']//text ()
-
如果属性值等于" advise on a home purchase plan"解析PermCondsLimitationsItem Popover类。
//李[@class = ' PermCondsLimitationsItem窗']//text ()
如果条件不满足,则留白等
如果想获得包含特定文本的元素的类,可以使用以下xpath:
//h3[text()='Advising on a home purchase plan']/@class
如果你需要得到整个div,使用:
//div[text()='Advising on a home purchase plan']
您的要求不清楚。如果这不是你想要的,请用预期的输出解释更多。