<div>
<ul class="show">
<li>275万购昌平邻铁三居 总价20万买一居</li>
<li>00万内购五环三居 140万安家东三环</li>
<li>北京首现零首付楼盘 53万购东5环50平</li>
<li>京楼盘直降5000 中信府 公园楼王现房</li>
</ul>
</div>

我想要把所有li标签中的文本提取出来,并且放到一个字符串中.

在网上查了下发现使用xpath的string()函数可以实现(string()和text()的区别请自行google)

先看下常见的方法:

>>> from lxml import etree
...
>>> result = html.xpath("//div/ul[@class='show']")[0]
>>> result.xpath('string(.)')
' 275万购昌平邻铁三居 总价20万买一居 00万内购五
环三居 140万安家东三环 北京首现零首付楼盘 53万购东5环50平
京楼盘直降5000 中信府 公园楼王现房 '

这是我查到的多数人使用的方法,还有人使用了concat()函数,更麻烦就不提了.

但是上面的匹配明显感觉可以写到一条xpath里面的,为什么非要分开写!忍不住吐槽一下



xpath string()函数的调用写法:

>>> html.xpath("string(//div/ul[@class='show'])")
' 275万购昌平邻铁三居 总价20万买一居 00万内购五
环三居 140万安家东三环 北京首现零首付楼盘 53万购东5环50平
京楼盘直降5000 中信府 公园楼王现房 '

再吐槽下上面那种写法.在xpath语法里面,点(.)表示当前节点,当前节点不就是html.xpath("//div/ul[@class='show']")[0]取到的节点元素吗!!!

Xpath string()提取多个子节点中的文本的更多相关文章

  1. CSS/Xpath 选择器 第几个子节点/父节点/兄弟节点

    0.参考 1.初始化 In [325]: from scrapy import Selector In [326]: text=""" ...: <div> ...

  2. scrapy xpath xpath('---').xpath('string(.)') 提取子元素全部文本

    product.xpath("div//div[@class='a-row a-spacing-mini'][1]/div[2]").xpath('string(.)')

  3. DOM节点中获取文本易混淆的属性

    DOM 节点中对于获取文本易混淆的属性,innerText, innerHTML, outerHTML, textContent, nodeValue. 一个实例: <!DOCTYPE html ...

  4. python BeautifulSoup 获取页面多个子节点中的各个节点的内容

    页面html格式为 <tr bgcolor="#7bb5de"><td style="border-bottom: 1px solid #C9D8AD& ...

  5. 解析xml(当节点中有多个子节点)

    概要:解析一个xml,当一个节点中又包含多个子节点如何解析,对比一个节点中不包括其他节点的情况. 一,xml样例 <cisReports batNo="查询批次号" unit ...

  6. DOM节点中属性nodeName、nodeType和nodeValue的区别 < Delphi >

    http://msdn.microsoft.com/zh-cn/library/vstudio/hf9hbf87.aspx <?xml version="1.0"?> ...

  7. 使用 lxml 中的 xpath 高效提取文本与标签属性值

    以下代码在 python 3.5 + jupyter notebook 中运行测试无误! # 我们爬取网页的目的,无非是先定位到DOM树的节点,然后取其文本或属性值 myPage = '''<h ...

  8. XPath可以快速定位到Xml中的节点或者属性。XPath语法很简单,但是强大够用,它也是使用xslt的基础知识。

    示例Xml: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <?xml versio ...

  9. xpath技术,用在dom4j中

    title: xPath语法应用 tags: xPath,dom4j grammar_cjkRuby: true --- 在dom4j中,会使用到xPath技术. 在项目中导入 jaxen-1.1-b ...

随机推荐

  1. redhat 6用yum方式安装nginx

    前提条件:如果发生了没有注册redhat账号造成没有权限使用yum的情况下,可以参考:http://www.cnblogs.com/boshen-hzb/p/6080431.html 1.cd /et ...

  2. centos6.5(64位)离线安装scalr

    1.下载scalr-server安装备包: 下载地址:http://pan.baidu.com/s/1eSA3dom scalr-server-5.1.0.oss-nightly.2015013004 ...

  3. Unit Testing of Spring MVC Controllers1

    我们的pom.xml文件相关的部分看起来如下: <dependency>    <groupId>com.fasterxml.jackson.core</groupId& ...

  4. (最小生成树 )还是畅通工程 -- HDU--1233

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1233 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  5. laravel命令

    新建控制器 php artisan make:controller IssuesController 新建控制器并自动生成对应RESTful风格路由相关CURD方法 php artisan make: ...

  6. 一个CTO谈自己的技术架构体系

    理解算法背后的世界观 我比较擅长的领域可能是数据和架构两个方面吧. 大数据方面就是数据挖掘.数据分析等领域,我现在带着极光推送整个的数据团队,需要把握数据团队的技术方向,还需要做很多算法方面的研究. ...

  7. SQL SERVER存储过程中使用事务与捕获异常

    https://www.douban.com/note/559596669/ 格式类似于 CREATE PROCEDURE YourProcedure ASBEGIN    SET NOCOUNT O ...

  8. SQL SERVER 2014--内存表实现秒杀场景

    ===================================== 网上针对“秒杀”的解决方案很多,数据拆分化解热点,READPAST解决锁问题,应用程序排队限制并发等等很多方式,各有优缺点, ...

  9. UEditor编辑器两个版本任意文件上传漏洞分析

    0x01 前言 UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点 ,被广大WEB应用程序所使用:本次爆出的高危漏洞属于.NET版本,其它的 ...

  10. leetcode 最后一个单词的长度

    给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 说明:一个单词是指由字母组成,但不包含任何空格的字符串. 示例: 输入: &quo ...