我有这样的东西<td width='370' style='border-left: 1px solid #fff;'>text I need to get</td>
,我需要使用 Python 获取文本。
我该怎么做?我对这些事情很陌生。
I personally love BeautifulSoup.
尝试这个,
>>> 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
Python有一个内置的html解析器模块......
http://docs.python.org/2/library/htmlparser.html
但我推荐Beautiful Soup(不要让看起来像史前的主页欺骗了你,这是一个非常好的图书馆。)
或者,您可以尝试lxml,它也非常好。
使用 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
使用正则表达式的解决方案
>>> import re
>>> re.findall("<.*?>(.*)<.*?>",foo)[0]
'text I need to get'