首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用lxml提取HTML/XML 数据

使用lxml提取HTML/XML 数据

作者头像
Spaceack
发布2020-11-04 14:18:52
发布2020-11-04 14:18:52
1.1K00
代码可运行
举报
文章被收录于专栏:编程使我快乐编程使我快乐
运行总次数:0
代码可运行

demo

代码语言:javascript
代码运行次数:0
运行
复制
#更新: 新版本引入etree模块方式

from lxml import html
etree = html.etree
tree = etree.HTML("")
代码语言:javascript
代码运行次数:0
运行
复制
html = '''
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title class="sub_title">Title</title>
</head>
<body>
<div class="none">
<a href ="#">Spaceack's code</a>
</div>
<div class="link">
<a href ="http://spaceack.com">Spaceack's blog</a>
</div>
</body>
</html>
'''

from lxml import etree
tree = etree.HTML(html)
# 获取class为link的a标签的元素内容
a_content = tree.xpath('.//div[@class="link"]/a/text()')
print(a_content)
# ["Spaceack's blog"]

# 使用attrib获取标签的属性值
href_element = tree.xpath('.//div[@class="link"]/a')
print(href_element)
# [<Element a at 0x7ff3571a4d80>]
href = href_element[0].attrib.get('href')
print(href)
# http://spaceack.com

获取标签元素内容为空的两种不同效果:

demo 如果想让价格使用或空字符串来占位,可以这样做:

代码语言:javascript
代码运行次数:0
运行
复制
key = tree.xpath("//th")
value = tree.xpath("//td")

key = [item.text for item in key] 
value = [item.text for item in value]
print(key, value)
'''
['水果', '价格'] ['苹果', None]
'''
key = [""  if   item.text==None else item.text for item in key]
value = [""  if  item.text==None else item.text for item in value]
print(key, value)
'''
key ['水果', '价格']
['水果', '价格'] ['苹果', '']
'''
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • demo
    • 获取标签元素内容为空的两种不同效果:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档