【问题标题】:Xpath class id + textXpath 类 ID + 文本
【发布时间】:2016-08-14 12:27:52
【问题描述】:

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

【问题讨论】:

  • 您能详细解释一下您的要求吗?是要获取匹配文本的类名还是要获取匹配文本的div?
  • 您好 Maheeka,感谢您的帮助。我试图提取表格,以便 XPath 找到与“就购房计划提供建议”的文本匹配的“PermissionsListHeader”类的表格,并提取客户类型(在本例中为“客户”,但可能有一些其中)

标签: xpath web-scraping import.io


【解决方案1】:

仍然很难理解您想要实现的目标。据我了解,您需要根据是否解析 PermCondsLimitationsItem Popover 类值(在本例中为 Customer) PermissionsListHeader 类属性值等于“就购房计划提供建议”。如果是,则保存 PermCondsLimitationsItem Popover 类属性的值。

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

  1. 解析并测试初始条件:

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

  2. 如果属性值等于“就购房计划提供建议”,则解析 PermCondsLimitationsItem Popover 类。

    //li[@class='PermCondsLimitationsItem Popover']//text()

如果条件不满足,就放空格等

【讨论】:

    【解决方案2】:

    如果要获取包含特定文本的元素的类,可以使用以下 xpath:

    //h3[text()='Advising on a home purchase plan']/@class
    

    如果您需要获取整个 div,请使用:

    //div[text()='Advising on a home purchase plan']
    

    您的要求不清楚。如果这不是您要查找的内容,请使用预期输出进行更多说明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-29
      • 1970-01-01
      • 2020-12-11
      • 1970-01-01
      • 2013-09-05
      • 1970-01-01
      相关资源
      最近更新 更多