2011-07-14 37 views
4
<html> 
<table border="1px"> 
<tr> 
<td>yes</td> 
<td>no</td> 
</tr> 
</table> 
</html> 

是否有任何方法可以獲得表格的內容(是,否)除了beautifulsoup?使用python解析/提取表格數據

python初學者,任何幫助或任何一種方向都會有很大的幫助。

謝謝

+1

是的。如果你沒有解析器來做?可能不會。 – Jacob

+0

好吧,我該如何解析它?? ??任何教程網站,你可能會建議?? ...谷歌搜索它的力量給出豐碩的成果.. –

+0

如果你的標記結構相對穩定,你可以保證它格式良好,你可以嘗試使用正則表達式。 (例如,一個用於枚舉表格行,另一個用於獲取行內的單元格)。 – Xion

回答

8

您可以使用自帶的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 
+0

謝謝...... !!!!!!!!!!!! –