【问题标题】:python - extracting tags and attributes from HTML - the hard waypython - 从 HTML 中提取标签和属性 - 艰难的方式
【发布时间】:2016-09-20 21:45:27
【问题描述】:

经过长时间的挣扎,我设法将一个输入长字符串处理成以下形式 - 一个列表:

['<', 'p', '>', '<', 'a', 'href', '>', '<', 'a', '>', '<', 'p', '>', '<', 'div', 'class', '>', '<', 'a', 'href', '>', '<', 'a', '>', '<', 'div', '>']

我现在如何有效地以硬编码方式处理该列表以获取每个 HTML 标记及其涵盖的属性?

所以在那之后我会确认 p 没有任何属性,a 有 href 并且 div 有 class 属性? p>

【问题讨论】:

标签: python html regex parameters tags


【解决方案1】:

只是为了学术挑战,你可以使用(从 Stackoverflow 上的 this answer 略微采用)

your_list = ['<', 'p', '>', '<', 'a', 'href', '>', '<', 'a', '>', '<', 'p', '>', '<', 'div', 'class', '>', '<', 'a', 'href', '>', '<', 'a', '>', '<', 'div', '>']

for prev,cur,next in zip([None]+your_list[:-1], your_list, your_list[1:]+[None]):
    if prev == '<' and next == '>':
        print "%s is an empty element" % cur

但是:这当然不是实现目标的最佳/最快/最安全的方法,最好首先使用像 BeautifulSoup 这样的适当解析器。话虽如此,请参阅 a demo on ideone.com

【讨论】:

  • 对不起,但这向我显示 div 是一个空的,这在这里不正确。
  • @JanM:它正确打印出 last div,确实是空的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多