我有类似<td width='370' style='border-left: 1px solid #fff;'>text I need to get</td>
的内容,我需要使用Python获取文本。
我该怎么办?我对这些事情很陌生。
答案 0 :(得分:2)
我个人喜欢BeautifulSoup。
答案 1 :(得分:0)
Python有一个内置的html解析器模块......
http://docs.python.org/2/library/htmlparser.html
但我建议Beautiful Soup(不要让史前的主页欺骗你,这是一个非常好的图书馆。)
或者你也可以试试lxml,这也很不错。
答案 2 :(得分:0)
使用Python xml Parser的解决方案
>>> from xml.dom.minidom import parseString
>>> parseString(foo).getElementsByTagName("td")[0].firstChild.nodeValue
u'text I need to get'
使用BeautifulSOup的解决方案
>>> import BeautifulSoup
>>> BeautifulSoup.BeautifulSoup(foo).getText()
u'text I need to get'
使用HTMPParser的解决方案
>>> from HTMLParser import HTMLParser
>>> class MyHTMLParser(HTMLParser):
def handle_data(self, data):
print data
>>> MyHTMLParser().feed(foo)
text I need to get
使用Regex的解决方案
>>> import re
>>> re.findall("<.*?>(.*)<.*?>",foo)[0]
'text I need to get'
答案 3 :(得分:0)
试试这个,
>>> html='''<td width='370' style='border-left: 1px solid #fff;'>text I need to get</td>'''
>>> from BeautifulSoup import BeautifulSoup
>>> ''.join(BeautifulSoup(html).findAll(text=True))
u'text I need to get'
>>>
此解决方案使用BeautifulSoup,
如果未在系统上安装BeautifulSoup。您可以像sudo pip install BeautifulSoup