Python爬虫:xpath解析

本文介绍了XPath在Python爬虫中的应用,讲解了XPath的基本概念、安装lxml模块的方法,以及如何使用XPath选择特定节点。通过实例展示了如何使用XPath爬取人邮教育网站的书籍信息,包括获取文本内容、属性值以及利用XPath遍历元素集合。
摘要由CSDN通过智能技术生成

什么是Xpath

xpath 是在XML文档中搜索内容的一门语言,html是xml的一个子集

前置知识

<book>
   <id>1</id>
   <name>2</name>
   <num>
     <nick>3</nick>
     <div>
        <nick>4</nick>
     </div>
     <span>
        <nick>5</nick>
     </span>
   </num>
   <author id="6">7</author>
<book/>

其中<>中的内容称为节点,,是兄弟节点,是它们的父节点。xpath找内容时,靠节点关系进行查询,如/book/id

安装lxml模块

pip install lxml

Xpath用法

1.如上边内容,想要拿去id的内容,获得[1]

from lxml import etree
tree = etree.XML(xml)
result = tree.xpath("/book/id/text()")  #text()拿文本

2.若想要找到内容[3, 4 ,5]用第一种方法就行不通了,若用第一种方式只能输出3,此时需要另一种方式

result = tree.xpath("/book/num//nick/text()") # //表示拿取所有后代

3.如果想要内容[3, 4, 5],也可以使用通配符的方式

result = tree.xpath("/book/num/*/nick/text()") # *表示任意节点

4.这里有个b.tml,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Title</title>
</head>
<body>
    <ul>
      <li><a href="http://www.baidu.com">百度</a></li>
      <li><a href="http://www.google.com">谷歌</a></li>
      <li><a href="http://www.sogou.com">搜狗</a></li>
    </ul>
    <ol>
      <li><a href="feiji">飞机</a></li>
      <li><a href="dapao">大炮</a></li>
      <li>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值