首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我怎样才能以优雅的方式将html解析成字典?

我怎样才能以优雅的方式将html解析成字典?
EN

Stack Overflow用户
提问于 2015-10-29 12:59:53
回答 1查看 64关注 0票数 1

我正在试着把html解析成字典。

我当前的代码中有很多逻辑。

它很难闻,我使用lxml来帮助我解析它。有什么推荐的方法可以在没有太多格式良好的DOM的情况下解析这种html吗?

非常感谢

原始html

代码语言:javascript
运行
复制
<p><strong>Departs:</strong> 5:15:00AM, Sat, Nov 28, 2015 - Taipei</p>
<p><strong>Arrives:</strong> 8:00:00AM, Sat, Nov 28, 2015 - Bangkok - Don Mueang</p>
<p><strong>Flight duration:</strong> 3h 45m</p>
<p><strong>Operated by:</strong> NokScoot</p>

预期结果

代码语言:javascript
运行
复制
{
    Departs: "5:15:00AM, Sat, Nov 28, 2015",
    Arrives: "5:15:00AM, Sat, Nov 28, 2015",
    Flight duration: "3h 45m"
    ...
}

当前代码(实现)

代码语言:javascript
运行
复制
doc_root = html.document_fromstring(resp.text)
for ele in doc_root.xpath('//ul[@class="tb_body"]'):
  if has_stops(ele.xpath('.//li[@class="tb_body_flight"]//span[@class="has_cuspopup"]')):
    continue 
  set_trace()
  from_city = ele.xpath('.//li[@class="tb_body_city"]')[0]
  set_trace()
  sub_ele = ele.xpath('.//li[@class="tb_body_flight"]//span[@class="has_cuspopup"]')
  set_trace()    
EN

回答 1

Stack Overflow用户

发布于 2015-10-29 13:39:55

我为你提供的html创建了一个例子。它使用流行的Beautiful Soup

代码语言:javascript
运行
复制
from bs4 import BeautifulSoup


data = '<p><strong>Departs:</strong> 5:15:00AM, Sat, Nov 28, 2015 - Taipei</p>\
        <p><strong>Arrives:</strong> 8:00:00AM, Sat, Nov 28, 2015 - Bangkok - Don Mueang</p>\
        <p><strong>Flight duration:</strong> 3h 45m</p>\
        <p><strong>Operated by:</strong> NokScoot</p>'

soup = BeautifulSoup(data, 'html.parser')
res = {p.contents[0].text: p.contents[1].split(' - ')[0].strip() for p in soup.find_all('p')}
print(res)

输出:

代码语言:javascript
运行
复制
{
    'Departs:': '5:15:00AM, Sat, Nov 28, 2015', 
    'Flight duration:': '3h 45m', 
    'Operated by:': 'NokScoot', 
    'Arrives:': '8:00:00AM, Sat, Nov 28, 2015'
}

我认为如果你想使你的代码紧凑,你应该避免使用属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33406250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档