网页抓取- Xpath类id +文本



我正在尝试抓取以下站点的权限表: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类属性的值。

所以下面的逻辑应该做这件事。

  1. 解析

    ,测试初始条件:

    //h3 [@class = ' PermissionsListHeader ']//text ()

  2. 如果属性值等于" 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']

您的要求不清楚。如果这不是你想要的,请用预期的输出解释更多。

最新更新