Xpath类id +文本

时间:2016-08-14 12:27:53

标签: xpath web-scraping import.io

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

2 个答案:

答案 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 类属性的值。

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

  1. 解析&lt; h3&gt; 并测试初始条件:

    // H3 [@class =&#39; PermissionsListHeader&#39;] //文本()

  2. 如果属性值等于&#34;就购房计划提供建议&#34;解析 PermCondsLimitationsItem Popover 类。

    // li [@class =&#39; PermCondsLimitationsItem Popover&#39;] // text()

  3. 如果条件不满意,只需填空格等。