使用XPath将节点中的文本与中间的组合在一起

时间:2017-08-17 20:37:18

标签: python-3.x xpath scrapy

我有以下HTML的和平:

$window.location.href="/login.html";

我希望使用XPath获取名字姓氏对

<ul class="clearfix">
<li class="li-class-name">
    <div class="head"><a href="url" title=""><img src="scr" alt="alt"></a>
        <div class="div-class-name"></div>
        <div class="another-div-class-name">
            <a href="url" title="">Name1<br>Surname1</a>
        </div>
    </div>
</li>
<li class="li-class-name">
    <div class="head"><a href="url" title=""><img src="scr" alt="alt"></a>
        <div class="div-class-name"></div>
        <div class="another-div-class-name">
            <a href="url" title="">Name2<br>Surname2</a>
        </div>
    </div>
</li>

如果我使用这种方法,我得到了所有用逗号分割的值,例如:[Name1,Surname1,Name2,Surname2 ..]

//div[@class="another-div-class-name"]/a/text()

如果我使用这种方法,我只得到第一对,例如:[Name1 Surname1]

但是,如果我尝试

concat(//div[@class="another-div-class-name"]/a/text()[1], ' ',  //div[@class="another-div-class-name"]/a/text()[2])

//div[@class="another-div-class-name"]/a/text()[1]

我分别得到了所有姓名或姓氏的所有名单。 请建议如何正确配对所有名称和姓氏[Name1姓氏1,姓名2姓氏] ..

1 个答案:

答案 0 :(得分:0)

这样做

for div in response.xpath("//div[@class="another-div-class-name"]"):
    raw_html_of_anchor = div.xpath("a").extract_first()
    surname = raw_html_of_anchor.split("<br>")[-1]