Xpath:简单易用的网页内容提取工具
学习一时爽,一直学习一直爽 !
Hello,大家好,我是Connor,一个从无到有的技术小白。上一次我们说到了 requests
的使用方法。到上节课为止,我们已经学完了所有的 Python 常用的访问库。那么当我们获取到了访问的内容之后,我们就应该从网页上提取我们想要的内容了。所以,今天我们来讲网页内容的常用提取工具之一:Xpath
。相比于 BeautifulSoup
而言,Xpath
更加简单易上手。
1.Xpath简介
Xpath
是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。他是一种路径语言(XML Path Language),用来确定XML文档中某部分的位置。
XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快的被开发者采用来当作小型*查询语言被广泛使用。比如说,当你打开一个网页后按 F12
进行元素检查。当你想要复制某个元素的路径的时候,你可以通过右键进行 Copy 操作。你会发现里面有 Copy Xpath
的选项。由此可见 Xpath 使用的广泛程度。
说了这么多Xpath使用的怎么怎么广泛,怎么怎么好用,我们还是来点实在的,看看在 Python 爬虫中到底如何使用 Xpath
来抓取我们想要的内容吧:
2. Xpath的安装
在前面的教程中,我几乎从未提过某个库的安装,但是为什么在这里我要提出如何安装呢?原因很简单,Xpath只是 lxml
库中的一个模块,在 Python 很多库中都提供有 Xpath
的功能,但是最基本的还是 lxml
的这个库。效率最高。所以,你知道了,想要使用 Xpath
那么你就需要安装 lxml
库:
pip install lxml
3.Xpath的语法
其实说白了,Xpath
就是从 html 中选取节点。节点是通过沿着路径或者通过 step 来选取的。下面,我们将通过如下HTML文档来进行演示:
html_doc ="""
<html>
<head></head>
<body>
<li>
<a href="/book_16860.html" title="总裁的新鲜小妻">
<img src="/16860s.jpg">
</a>
<img src="/kukuku/images/only.png" class="topss png_bg">
<img src="abc.png" class="topss png_bg">
<a href="/book_16860.html">总裁的新鲜小妻子</a>
</li>
<li>
<a href="/book_16861.html" title="斗神天下">
<img src="/16861s.jpg">
</a>
<img src="/kukuku/images/only.png" class="topss png_bg"<