zoukankan      html  css  js  c++  java
  • python使用xpath获取内容

    python使用xpath获取内容

    <div class="leftbox">
      <div class="panel">
        <div class="mtitle path"><h1>12</h1></div>
        <div class="mcon1"><h2>34</h2></div>
        <div class="mcon2">测试<a href="">链接</a></div>
      </div>
    </div>
    <div class="rightbox">
      <div class = "mtitle3 path">123</div>
      <div algin="mcon3">345</div>
      <div>ereer</div>
    </div>


    from lxml import etree
    from lxml.html import tostring

    # 1.获取h1标签的内容
    data = selector.xpath('//div[@class="leftbox"]/div[@class="panel"]/div[contains(@class, "mtitle")]/h1/text()')[0]

    # 2.获取h2标签的内容
    data = selector.xpath('//div[@class="leftbox"]/div[@class="panel"]/div[@class="mcon1"]/h2/text()')[0]

    # 3.获取mcon2标签的全部文字内容
    data = selector.xpath('//div[@class="leftbox"]/div[@class="panel"]/div[@class="mcon2"]').xpath('string(.)')

    # 4.获取class包含mtitle3 或者 algin=mcon3
    data = selector.xpath('//div[@class="rightbox"]/div[contains(@class,"mtitle3") or @algin="mcon3"]')

    # 5.获取当前标签全部字符串内容,包括标签本身
    datas = selector.xpath('//div[@class="rightbox"]/div[contains(@class,"mtitle3") or @algin="mcon3"]')
    for data in datas:
      # 编码格式为源码编码格式
      str = tostring(data, encoding="utf-8").decode("utf-8")
      print(str)

    # 6.获取当前标签内的全部文字(不含html标签)
    datas = selector.xpath('//div[@class="rightbox"]')
    data = datas[0]
    data = data.xpath(‘.//text()’)
    data = ''.join([i.strip() for i in data])

  • 相关阅读:
    解决使用vim-go插件时候保存go代码导致设置好的折叠消失的问题
    golang中从一个日期开始往后增加一段时间
    linux kernal oom killer 学习
    awk学习笔记
    FlexMonkey实战
    如何阅读一本书-读书笔记
    Oracle性能问题sql调优脚本集
    了解ORACLE培训OCA-OCP-OCM课程表
    Sublime Text 3设置笔记
    【总结】AngularJs学习总结
  • 原文地址:https://www.cnblogs.com/WebLinuxStudy/p/14502609.html
Copyright © 2011-2022 走看看