爬虫(三)——数据提取(3)之XPath

数据提取(3)

XPath的使用

XPath和XLML类库

  • lxml是一款高性能的python HTML/XML解释器,我们可以利用XPath,来快速的定位特定元素以及获取节点信息。
  • XPath(XML Path Language)定义:是一门在HTML/XML文档中查找信息的语言,可以用来在HTML/XML文档中对元素和属性进行遍历
  • 学习文档:https://www.w3school.com.cn/xpath/index.asp
认识XML
  • XML
    • 是一种可扩展标记语言
    • 目的:被设计为传输和存储数据,其焦点是数据的内容
    • 节点:每个XML的标签称之为节点
  • HTML
    • 是一种超文本标记语言
    • 目的:显示数据以及如何更好显示数据
XPath节点选择
  • 工具
    • Chrome插件XPath Helper
    • 开源XPath表达式编辑工具:XMLQuire(XML格式文件可用)
    • Firefox插件 XPath Checker
节点选择语法
  • XPath使用路径表达式来提取XML文档中的节点或者节点集。这些路径表达式和在常规的linux电脑文件系统中看到的表达式非常相似。
  • 语法
XPath学习重点
  • 使用xpath helper或者是chrome中的copy xpath都是从element中提取的数据,但是爬虫获取的是url对应的响应,往往和element不一样。
  • 获取文本
    • a/text()获取a下的文本
    • a//text()获取a下的所有标签的文本
    • //a[text()="下一页"]选择文本为“下一页”三个字的a标签
  • @符号
    • a/@href
    • a//ul[@id="detail"]
  • //符号
    • 在xpath开始的时候表示从当前html中任意位置开始选择
    • li//a表示li标签下的任意一个a标签
  • 提取https://movie.douban.com/chart网页中电影的名称,图片
    • //div[@class="indent"]//table//div[@class="pl2"]/a//text()
    • //div[@class="indent"]//table//a[@class="nbg"]/img/@src
  • 节点选择
  • 节点
python中lxml库
  • 使用入门:
    • 导入lxml的etree库
      from lxml import etree
    • 利用etree.HTML,将字符串转化为Element对象
    • Element对象具有xpath的方法
      html = etree.HTML(text)
  • lxml可以自动修正html对象
lxml使用注意点
  • lxml能够修正HTML代码,但是可能会改错了
    • 使用etree.tostring()观察修改后的html的样子,根据修改之后的html字符串写xpath
  • lxml能够接受bytes和str字符串
  • 提取页面数据的思路
    • 先分组,取到一个包含分组标签的列表
    • 遍历,取其中每一组进行数据的提取,不会造成数据的对应错乱
xpath的包含
  • //div[contains(@class,'i')]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值