Xpath用法

示例

from lxml import html
def parse():
    """ 将html文件中的内容,使用xpath进行提取 """
    # 读取文件中的内容
    f = open('./static/index.html', 'r', encoding='utf-8')
    s = f.read()

    selector = html.fromstring(s)
    # 解析H3标题
    h3 = selector.xpath('/html/body/h3/text()')
    print(h3)
    print(h3[0])

    # 解析ul下面的内容
    # ul = selector.xpath('/html/body/ul/li')
    ul = selector.xpath('//ul/li')
    print(len(ul))
    for li in ul:
        print(li.xpath('text()')[0])

    # 解析ul指定的元素值
    ul2 = selector.xpath('/html/body/ul/li[@class="important"]/text()')
    print(ul2)

    # 解析a标签的内容
    a = selector.xpath('//div[@id="container"]/a/text()')
    # 标签内的内容
    print(a[0])
    # href属性
    alink = selector.xpath('//div[@id="container"]/a/@href')
    print(alink[0])

    # 解析P标签
    p = selector.xpath('/html/body/p[last()]/text()')
    print(len(p))
    print(p[0])

    test = selector.xpath('/html/body/ul/li[3]/text()')
    print(test[0])

    f.close()


if __name__ == '__main__':
    parse()

结果 :
['标题']
标题
5
内容1
内容2
内容3important
内容4
内容5
['内容3important']
跳转到百度首页
http://www.baidu.com
1

    最后一段文字

内容3important

  • html结构
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>网页测试</title>
    <link rel="stylesheet" href="">
</head>
<body>
    <h3>标题</h3>
    <ul>
        <li>内容1</li>
        <li>内容2</li>
        <li class="important">内容3important</li>
        <li>内容4</li>
        <li>内容5</li>
    </ul>
    <div>
        内容未知
    </div>
    <p>
        段落内容 from p
    </p>
    <div id="container">
        段落文字
        <a href="http://www.baidu.com" title="超链接">跳转到百度首页</a>
        <p class="content">
            区块内容1
        </p>
        <p class="content">
            区块内容2
        </p>
        <p class="content">
            区块内容3
        </p>
        <p class="content">
            区块内容4
        </p>
        <p class="content-block">
            区块内容5   from block
        </p>
        <p class="block-content">
            区块内容6  末尾内容
        </p>
    </div>
    <p>
        最后一段文字
    </p>
</body>
</html>


//是代表所有的意思
/是从根路径开始

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近在研究kafka,看了一堆理论的东西,想动手实践一些东西,奈何手上的数据比较少,突发奇想就打算写个爬虫去抓一些...
    疯狂的哈丘阅读 885评论 0 5
  • ···lxml用法源自 lxml python 官方文档,更多内容请直接参阅官方文档,本文对其进行翻译与整理。lx...
    小丰丰_72a2阅读 1,015评论 0 1
  • 一、xpath介绍 XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素...
    君临天下夜未央阅读 13,641评论 0 4
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,996评论 2 59
  • 如果没有那场聚会 你我说过的话不会超过十句 如果没有唱歌唱到那么晚 我不会想要坐你的顺风车 如果没有坐你的顺风车 ...
    一碗桃花泪阅读 93评论 0 0