0

我有这样的东西<td width='370' style='border-left: 1px solid #fff;'>text I need to get</td>,我需要使用 Python 获取文本。

我该怎么做?我对这些事情很陌生。

4

4 回答 4

2

I personally love BeautifulSoup.

于 2012-12-27T15:14:53.557 回答
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

于 2012-12-27T15:49:45.903 回答
0

Python有一个内置的html解析器模块......

http://docs.python.org/2/library/htmlparser.html

但我推荐Beautiful Soup(不要让看起来像史前的主页欺骗了你,这是一个非常好的图书馆。)

或者,您可以尝试lxml,它也非常好。

于 2012-12-27T15:17:22.430 回答
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

使用正则表达式的解决方案

>>> import re
>>> re.findall("<.*?>(.*)<.*?>",foo)[0]
'text I need to get'
于 2012-12-27T15:18:36.873 回答