• 爬虫笔记:xpath和lxml(十二)


    XPATH

    XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。

    根据元素的路径找元素。http://www.w3school.com.cn/xpath/index.asp具体介绍可以看这个。

    lxml

    lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据。

    lxml和正则一样,也是用 C 实现的,是一款高性能的 Python HTML/XML

    解析器,我们可以利用之前学习的XPath语法,来快速的定位特定元素以及节点信息。

    lxml python 官方文档:http://lxml.de/index.html
    需要安装C语言库,可使用 pip 安装:pip install lxml (或通过wheel方式安装)

    可以通过lxml来操作网页的xpath,获取到对应的数据或者节点。

    from lxml import etree
    import requests
    text=requests.get('http://www.baidu.com').text#打开百度,获取到html代码
    html=etree.HTML(text)#传一个字符串格式的html
    html=etree.parse('a.html')#这个parse方法可以传一个文件名,或者一个文件对象,他会自动解析
    html.xpath("/tag/a[@href='xxx']")#找到某个节点下面的a标签href属性为xx的,从根节点往下找
    html.xpath("//a[@href='xxx']") #//2个/代表不管a标签在哪个节点下面,只要herf为xx的就找到
    html.xpath("//div[@class='xxx']//a[@class='cls']") #找到所有div标签class为xx的下面的所有a标签class为cls的
    html.xpath("//div[@class='note']//a/@href") #找到div class为note下面的所有a标签,然后取到它的href属性里面的值
    html.xpath("//div[contains(@id,'qiushi_tag_')]") #模糊查询,查到id里面包含qiushi_tag的所有元素
    # xpath返回的都是一个list,如果你确定只返回一个元素的话,就可以直接取第一个元素
    # 如果不确定的话,那就需要循环了
    title = html.xpath('//div[@class="title-text c-font-medium c-color-t"]//text()') 
    print(title)
    

      

    from lxml import etree
    import requests
    text=requests.get('http://www.baidu.com').text#打开百度,获取到html代码
    html=etree.HTML(text)#传一个字符串格式的html
    title = html.xpath('//div[@class="title-text c-font-medium c-color-t"]//text()') 
    print(title)
    

      

  • 相关阅读:
    vue中mixins的使用方法和注意点(详)
    深入理解.sync修饰符
    less语法详解
    vue中的history和hash
    在Vue组件中获取全局的点击事件
    echarts
    【SQL Server性能优化】运用SQL Server的全文检索来提高模糊匹配的效率
    【SQL Server备份恢复】维护计划实现备份:每周数据库完整备份、每天差异备份、每小时日志备份
    通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了?
    如何向视图插入数据
  • 原文地址:https://www.cnblogs.com/wxcx/p/12913710.html
Copyright © 2020-2023  润新知