lxml

# -*- coding:utf-8 -*-
# lxml xpath会用到里边的tree
from lxml import etree
# parse()函数
# 用来解析本地的html文件
# 如果文件里有单标签,需加/做结束标志
# html源代码解析之后转换成一个ElementTree对象
html = etree.parse('index.html')
print(html)

# ElementTree 也可以转换为一个字符串
string = etree.tostring(html).decode('utf-8')
print(type(string))

# 找到a标签 通过标签名找到所有的标签
# 返回列表,列表中存放的是找到的Element标签对象
res = html.xpath('//a')
for ele in res:
    # @属性名  查找标签的属性值
    # text() 标签内的文本内容
    href = ele.xpath('@href')[0]
    text = ele.xpath('text()')[0]
    print(href,text)
res = html.xpath('//a/@href')
# /text()获取当前标签的直接子文本
# //text()获取当前标签和子孙标签内的所有文本
res = html.xpath('//a//text()')
print(res)

# 获取指定位置的标签
# div[@属性名=属性值]/标签/标签/标签名[number]number指找到第几个
res = html.xpath('//div[@id="main"]/ul/li[3]')
print(res[0].xpath('text()'))

# 获取指定属性包含某个属性值得标签
# *可以表示任意标签名
# contains(@属性名,属性值) 找到某个属性包含某个属性值的标签
res = html.xpath('.//*[contains(@class,"s")]')
print(res)

# 直接找h1标签
res = html.xpath('//h1[@class="content s"]')
print(res)

res = html.xpath('//p[@class="top"]/h1[contains(@class,"s")]')
print(res)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值