AI大模型教程
一起来学习

Python 轻量级 HTML 解析器 - lxml入门教程

初始化解析器


from lxml import html
from lxml.html import HtmlElement

page = '''


    
    
Your Internet and Goverment can track your torrent Activity! Hide your IP with a VPN!
Torrent Kitty - Free Torrent To Magnet Link Conversion Service '''
rootElement: HtmlElement = html.fromstring(page) # 简单查找,获取指定类别的所有标签 elements: list[HtmlElement] = rootElement.find_class('login') print(elements)

路径查找

  • HtmlElement.xpath(‘xxxxxxxxxxxxxxxx’)

如果匹配不到元素返回空数组

查找所有标签


elements = rootElement.xpath('//*')
print(elements)

查找指定 id 的标签


elements = rootElement.xpath('//*[@id="overlay"]')
print(elements)

查找指定 class 的标签


elements = rootElement.xpath('//*[@class="login"]')
print(elements)

查找包含指定 class 的标签


elements = rootElement.xpath('//*[contains(@class, "login")]')
print(elements)

复杂路径查找

示例1

1、查找 class 为login 的 header
2、在 header 下查找 class 包含content的 div
3、在 div 下查找所有 table 标签


elements = rootElement.xpath('//header[@class="login"]/div[contains(@class, "content")]/table')
print(elements)

示例2

1、查找 id 为overlay 的 div
2、在 div 下查找第二个 div
3、在第二个 div 下查找所有 table 标签


elements = rootElement.xpath('//div[@id="overlay"]/div[2]/table')
print(elements)

常见操作

获取所有标签的链接


# 如果想获取其他属性值,把@后面改成对应的属性名称即可
urls = rootElement.xpath('//a/@href') 
print(urls)

获取 div 标签的文本内容, 其他标签类似


pText = rootElement.xpath('//div[@class="login"]/text()')
print(pText)

其他元素操作


elements = rootElement.xpath('//*')
for element in elements:
    print(element.text) # 文本不拼接(不包含子元素内的文本)
    print(element.text_content()) # 拼接元素内所有文本 

    # 获取 class 的值,如果想获取其他属性值改成对应属性名称即可
    # 使用get获取,如果没有值可以提供默认值
    print(element.get('class', '没有值')) 
    # print(element.get('class'))  
    
   	# 获取所有属性,类型 dict, key为属性名,value为属性值
    print(element.attrib) 

    if 'src' in element.attrib:
        print('src 属性存在')

    # 遍历属性
    attrib = element.attrib
    for key in attrib: 
        print(key, attrib[key])

    items = element.find('div')
    print(items) # 获取element下的所有 div 标签

	# 在 element 下查找所有 table 标签
    items = element.xpath('table') 
    print(items)

	# 在 element 下查找 id 为 overlay 的标签, 如果找不到返回 None
    items = element.get_element_by_id('overlay', None) 
    print(items)
    

文章来源于互联网:Python 轻量级 HTML 解析器 – lxml入门教程

相关推荐: 计算机毕业设计-企业内部员工考勤管理系统

摘要 互联网的发展已经深入了企业办公,目前企业很多管理体制开始进行互联网信息的转变。人员数量众多传统的模式已经不能满足需求。而且传统的管理模式人力和效率上都不能有效提高。尤其是员工的请假管理,需要发放请假条员工填写请假条领导再进行审批转交。还有学院对员工的请假…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » Python 轻量级 HTML 解析器 - lxml入门教程
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们