爬虫基础----XPath基础

第1关  XPath 路径表达式

1.选取bookstore元素的所有子节点
********** Begin *********
bookstore
*********** End **********

2.选取所有拥有名为 lang 的属性的 title 元素
********** Begin *********
//title[@lang]
*********** End **********

3.选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性和值为good的class属性
********** Begin *********
//title[@lang='eng' and @class="good"] 
*********** End **********

4.选取属于 bookstore 子元素的book元素下的所有文本内容
********** Begin *********
/bookstore/book/text()
*********** End **********

5.选取属于 bookstore 子元素的第一个 book 元素
********** Begin *********
/bookstore/book[1]
*********** End **********

第2关  XPath 轴定位

1.选取所有属于当前节点的子元素的 book 节点
********** Begin *********
child::book
*********** End **********

2.选取当前节点的 lang 属性
********** Begin *********
attribute::lang
*********** End **********

3.选取当前节点的所有 price 孙节点
********** Begin *********
child::*/child::price
*********** End **********

第3关  XPath 解析

# 导入lxml库
from lxml import etree

# 读取lll.html文件并转化为元素树对象
parse = etree.HTMLParser(encoding='utf-8')
tree = etree.parse('src/step3/lll.html', parse)

# 补充xpath表达式,获取所有书的名称
# ********** Begin ********* #
print(tree.xpath('//book/title/text()'))
# *********** End ********** #

# 补充xpath表达式,获取所有书的价格
# ********** Begin ********* #
print(tree.xpath('//book/price/text()'))
# *********** End ********** #

# 填写代码, 获取价格低于30的书名
# ********** Begin **********#
A=tree.xpath('//book[price<30.00]/title/text()')
print(A[0])
# *********** End ********** #


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值