Python爬⾍数据提取⽅式——使⽤xpath提取页⾯数据xpath:跟re,bs4,pyquery⼀样,都是页⾯数据提取⽅法。
xpath是根据元素的路径来查页⾯元素。
安装lxml包:pip install lxml
HTML实例:
html = “”"
One
Two
Three
Four
第⼀段
第2段
第3段
第4段
法⼤师傅⼤师傅
第5段
python安装教程 csdn第6段
“”"
将⼀个Html⽂件解析成为对象:
⾸先导⼊:
element tree: ⽂档树对象
from lxml.html import etree
css常用样式有哪些将HTML解析成为对象:
#⽅式⼀:使⽤较多
obj= etree.HTML(“index.html”)ppt模板免费下载免费使用
#⽅式⼆:
obj = etree.parse(‘index.html’)
print(type(obj))
开始查元素或数据:
注意:
1、 //ul: 从obj中查ul,不考虑ul所在的位置。
2、/li: 到ul下边的直接⼦元素li,不包含后代元素。
3、 [@class=“one”]: 给标签设置属性,⽤于过滤和筛选
4、xpath()返回的是⼀个列表:⽐如
one_li = obj.xpath(’//ul/li[@class=“one”]’)[0]
获取one_li的⽂本内容:
one_li = obj.xpath(’//ul/li[@class=“one”]’)[0]如何打出乱码符号
print(one_li.xpath(‘text()’)[0])
上述写法的合写⽅式
print(obj.xpath(’//ul/li[@class=“one”]/text()’)[0])
获取所有li的⽂本内容:
all_li = obj.xpath(’//ul/li/text()’)
获取所有li的⽂本内容以及class属性的值:
all_li = obj.xpath(’//ul/li’)儿童编程语言有哪些
for li in all_li:
class_value = li.xpath(’@class’)[0]
text_value = li.xpath(‘text()’)[0]
print(class_value, text_value)
获取div标签内部的所有⽂本:
注意://text():获取所有后代元素的⽂本内容
/text():获取直接⼦元素的⽂本,不包含后代元素
print(obj.xpath(’//div[@id=“inner”]//text()’))
获取ul中第⼀个li [1]([1]:第⼀个li)的⽂本:
print(obj.xpath(’//ul/li[1]/text()’))
查类名中包含four的li的⽂本内容:
print(obj.xpath(’//ul/li[contains(@class, “four”)]/text()’))
—
———————————————
maven离线配置版权声明:本⽂为CSDN博主「MXuDong」的原创⽂章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原⽂出处链接及本声明。原⽂链接:blog.csdn/qq_33472765/article/details/80672281
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论