Xpath获取标签后的文本

时间:2013-12-27 02:25:47

标签: python html python-2.7 xpath scrapy

我想根据他们的(前面的)<label>属性来获取项目,例如:

 <div>
      <ul>
          <li class="phone">
               <label>Mobile</label>
               312-999-0000
 <div>
      <ul>
          <li class="phone">
               <label>Home</label>
               312-999-0001

我想将第一个数字放在“移动”列/列表中,将第二个数字放在主页列表中。我目前有代码抓取它们,但我不知道获取标签的正确语法,因为它在源中。这就是我现在正在使用的:

for target in targets:
    item = CrawlerItem()
    item['phonenumbers'] = target.xpath('div/ul/li[@class="phone"]/text()').extract()

如何使用标签为item ['mobilephone']和item ['homephone']重写该内容?

1 个答案:

答案 0 :(得分:2)

我在完成问题时找到了答案,并认为我应该分享它:

item['mobilephone'] = target.xpath('div/ul/li/label[contains (text(),"Mobile")]/following-sibling::text()').extract()
item['officephone']= target.xpath('div/ul/li/label[contains (text(),"Office")]/following-sibling::text()').extract()