【问题标题】:Parse/extract table data using python使用python解析/提取表数据
【发布时间】:2011-07-14 08:20:47
【问题描述】:
<html> 
<table border="1px"> 
<tr>
<td>yes</td>
<td>no</td>
</tr>
</table>
</html>

除了beautifulsoup还有什么方法可以获取表格的内容(是,否)??

python初学者,任何帮助或任何方向都会有很大帮助。

谢谢

【问题讨论】:

  • 是的。你应该在没有解析器的情况下这样做吗?可能不会。
  • 好的,我该如何解析它??..您可能建议的任何教程网站??...谷歌搜索它会产生丰硕的结果..
  • 如果你的标记结构比较稳定并且可以保证格式正确,你可以尝试使用正则表达式。 (例如,一个用于枚举表格行,另一个用于获取行内的单元格)。
  • @PHP:人们喜欢 BeautifulSoup 的原因是它接受的 HTML 非常灵活,这很有用,因为您在 Internet 上找到的很多内容都已损坏。 lxmlHTMLParser 之类的东西对允许的错误比较严格。
  • @Xion :将检查正则表达式。 @katrielalex,一直在用beautifulsoup。

标签: python html


【解决方案1】:

可以使用 Python 标准库自带的HTMLParser 模块。

>>> import HTMLParser
>>> data = '''
... <html> 
... <table border="1px"> 
... <tr>
... <td>yes</td>
... <td>no</td>
... </tr>
... </table>
... </html>
... '''
>>> class TableParser(HTMLParser.HTMLParser):
...     def __init__(self):
...         HTMLParser.HTMLParser.__init__(self)
...         self.in_td = False
...     
...     def handle_starttag(self, tag, attrs):
...         if tag == 'td':
...             self.in_td = True
...     
...     def handle_data(self, data):
...         if self.in_td:
...             print data
...     
...     def handle_endtag(self, tag):
...         self.in_td = False
... 
>>> p = TableParser()
>>> p.feed(data)
yes
no

【讨论】:

    猜你喜欢
    • 2020-05-30
    • 2013-05-22
    • 1970-01-01
    • 2018-09-16
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    相关资源
    最近更新 更多