Python学习之旅(核心编程爬虫篇005xpath&csv文件)

Python核心编程爬虫篇2021.03.29

指导教师:逻辑教育讲师Jerry

一、Xpath概念

  • Xpath(XML Path Languag):一种XML的查询语言,可以在 XML 文档中通过元素和属性进行导航,在XML树状结构中寻找节点
  • XML 可扩展标记语言
  • html 超文本标记语言

二、节点介绍

  • XML文档
    在这里插入图片描述
  • XML文档中的节点例子
    <bookstore>文档节点
    <author>JK.Rowing</author>元素节点
    lang='eng'属性节点
  • 其中
    父(Parent) :book元素是title、author、year、price元素的父
    子(Children) :title、author、year、price都是book元素的子
    同胞(Sibling): title、author、year、price都是同胞
    先辈(Ancestor) title元素的先辈是 book元素和bookstore元素
  • xpath路径表达式
表达式 描述
nodename 选取此节点的所有子节点
/ 从根节点选取
// 从匹配选择的当前节点选取文档中的节点,不考虑他们的位置
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性
  • 查找某个特定的节点或者包含某个指定的值的节点
路径表达式 结果
/bookstore/book[1] 选取属于bookstore子元素的第一个book元素
/bookstore/book[last()] 选取属于bookstore子元素的最后一个book元素
/bookstore/book[last()-1] 选取属于bookstore子元素的倒数第二个book元素
/bookstore/book[positio()<3] 选取属于bookstore子元素的最前面两个book元素
//title[@lang] 选取所有含lang属性的title元素
//title[@lang='eng'] 选取所有含lang属性值等于eng的title元素
/bookstore/book[price<35.00] 选取bookstore子元素中price元素值大于35的所有book元素

三、Xpath使用

1.工具安装

  • 常用节点选择工具
    • 谷歌浏览器插件:Xpath Helper
    • 火狐浏览器插件:XPath Checker(Xpath Finder)
  • 火狐浏览器Xpath Finder安装
    • 1、点击右上角菜单,选择附加组件
      在这里插入图片描述
    • 2、在搜索框内输入Xpath搜索
      在这里插入图片描述
    • 3、选择要安装的插件
      在这里插入图片描述
    • 4、
      在这里插入图片描述
    • 5、
      在这里插入图片描述
    • 6
      在这里插入图片描述
  • Xpath Finder的使用
    • 1.打开关闭:快捷键Ctrl+shift+u
      在这里插入图片描述
    • 2.打开后光标会变成十字架,点击要查找节点的要素浏览器下发就会出现

2、lxml模块的使用

在Python中,我们安装lxml库来使⽤XPath技术。lxmlHTML/XML的解析器,主要的功能是解析和提取HTML/XML数据,并利⽤etree.HTML方法,将字符串转化为Element对象,再以Xpath查询数据节点

"""lxml练习使用"""
from lxml import etree
import csv

wb_data = """
        <div>
            <ul>
                 <li class="item-0"><a href="link1.html">first item</a></li>
                 <li class="item-1"><a href="link2.html">second item</a></li>
                 <li class="item-inactive"><a href="link3.html">third item</a></li>
                 <li class="item-1"><a href="link4.html">fourth item</a></li>
                 <li class="item-0"><a href="link5.html">fifth item</a>
             </ul>
         </div>
        """

element = etree.HTML(wb_data)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值