0
点赞
收藏
分享

微信扫一扫

【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:

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


获取有关内容的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

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


直接安装:pip install lxml

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

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

BeautifulSoup支持多种解析器

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


如何使用?

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

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


举报

相关推荐

0 条评论