这篇文章主要为大家展示了“Python爬虫XPath怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python爬虫XPath怎么用”这篇文章吧。
xpath
是一门在XML
和HTML
文档中查找信息的语言,可用来在XML
和HTML
文档中对元素和属性进行遍历,XPath 通过使用路径表达式来选取 XML
文档中的节点或者节点集。这些路径表达式和在常规的电脑文件系统中看到的表达式非常相似。
想要学好xpath
,首先要搞明白html
文档中的节点。
<div> <ul> <li class="item-0"><a href="link1.html" rel="external nofollow" >first item</a></li> <li class="item-1"><a href="link2.html" rel="external nofollow" >second item</a></li> <li class="item-inactive"><a href="link3.html" rel="external nofollow" >third item</a></li> <li class="item-1"><a href="link4.html" rel="external nofollow" >fourth item</a></li> <li class="item-0"><a href="link5.html" rel="external nofollow" >fifth item</a> # 注意,此处缺少一个 </li> 闭合标签 </ul> </div>
以上是在网上随便找的一段html的文本,可以观察得到,div的标签下是ul标签,而ul标签下是li标签,于是发现html的标签是一级一级如树状的。Xpath正是通过这样的方式去寻找。以生活中举例,要确定一个人的位置,首先确定他在中国,然后确定他在某个省份,哪座城市,那个小区,最后找到他。
表达式 | 描述 |
Nodename | 选取此节点的所有子节点 bookstore 选取bookstore下所有的子节点 |
/ | 如果是在最前面,代表从根节点选取。否则选择某节点下的某个节点 /bookstore 选取根元素下所有的bookstore节点 |
// | 从全局节点中选择节点,随便在哪个位置 //book 从全局节点中找到所有的book节点 |
@ | 选取某个节点的属性 //book[@price] 选择所有拥有price属性的book节点 |
. | 当前节点 |
Text() | 获取标签中的文本 |
同级标签可以用li[1]
,li[2]
,li[3]
的方式获取
简单介绍一下lxml
库,接下来会用到它
lxml
是一个HTML
/XML
的解析器,主要的功能是如何解析和提取HTML
/XML
数据。
lxml
和正则一样,也是用C实现的,是一款高性能的PythonHTML
/XML
解析器,可以利用之前学习的XPath语法,来快速的定位特定元素以及节点信息。
随便爬取一个网站,找到找到网站的html
文本
如下图:
要找到title
和href
,仔细观察可以得到路径分别是//div[@id="resultList"]/div[@class="el"]/p/span/a/@title
//div[@id="resultList"]/div[@class="el"]/p/span/a/@href
运行如下:
以上是“Python爬虫XPath怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。