【python爬虫专项(5)】Xpath与lxml包(BeautifulSoup如何调用Xpath解析器)

1. 什么是Xpath?

1.1 概念

Xpath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言

Xpath也可以用于定位html的标签

Xpath就像是一个地址,可以找到网页代码里你需要的数据

1.2 如何在网页中找到xpath路径?

以豆瓣网为例:https://book.douban.com/tag/%E7%BB%8F%E5%85%B8

在浏览器中打开检查,可以找到标签位置后,右键copy xpath:
在这里插入图片描述
获取有关内容的Xpath举例

豆瓣图书标签:经典

x1 = '//*[@id="content"]/h1'
#一个网址里面 id 只能有一个

小王子(书名)

x2 = '//*[@id="subject_list"]/ul/li[1]/div[2]/h2/a'

书简介(小王子)

x3 = '//*[@id="subject_list"]/ul/li[1]/div[2]/p'

封面(小王子)

x4 = '//*[@id="subject_list"]/ul/li[1]/div[1]/a/img'

2. Xpath基础

2.1 html基本标签

<a> </a>定义超链接,用于一张页面链接到另一张页面
<h1> </h1>文本标题标签,最大的标签,h后可接1到6,有6层选择
<p> </p>段落标记标签
<div> </div>可定义文档中的区域或节,可以把文档分割为不同部分,是一个块级元素
<ul> </ul>创建一个列表
<li> </li>创建列表内容项
<input>用于搜集用户信息,可以是文本字段,复选框,按钮等
<img> </img>向网页中嵌入一幅图像,从网页中链接图像
<table> </table>创建一个表格
<tr> </tr>表格中的每一行
<th> </th>设置表格头,通常为黑体居中文字
<option> </option>设置每个表单项的内容/选项

xpath就是在定位html的标签位置

eg: //body/div[8]/div[1]/div[3]/div[1]/div[1]/div[3]/ul[1]/li

2.2 Xpath基本语法

/从根节点选取
//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
@选取属性
*匹配任何元素节点
@*匹配任何属性
//*选择文档中的所有元素节点
//a[@*]选择所有带属性的a节点

2.3 路径问题

完整路径:是从根节点开始,不常用

eg: /html/body/div[2]/div[2]/div[2]/ul/li[1]/img

相对路径:一般会使用class或者id定位

eg: //ul[@class=“toturial-list video-list”]/li/img

2.4 属性和位置选择

选择属性

eg://*[@id=“content”]/h1

选择位置

eg://*[@id=“subject_list”]/ul/li[1]

3. Xpath工具包安装:lxml

首先查看电脑中有没有lxml工具包:pip show lxml
在这里插入图片描述
直接安装:pip install lxml

4. BeautifulSoup如何调用Xpath解析器?

BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是 lxml

BeautifulSoup支持多种解析器
在这里插入图片描述
如何使用?

soup = BeautifulSoup(url.text,'lxml')

也就是解答了最开始学习爬虫时候为啥后面要加上 ‘lxml’ 的问题。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lys_828

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值