使用BeautifulSoup的Python XML解析器。如何去除标签?

1 投票
2 回答
1100 浏览
提问于 2025-04-16 21:41

为了一个项目,我决定做一个帮助人们在Twitter上找到朋友的应用。

我已经能够从xml页面中提取用户名。比如说,使用我现在的代码,我可以从一个XML页面中获取到 <uri>http://twitter.com/username</uri> 这样的内容,但我想用 Beautiful Soup 来去掉 <uri></uri> 这些标签。

这是我现在的代码:

import urllib
import BeautifulSoup

doc = urllib.urlopen("http://search.twitter.com/search.atom?q=travel").read()

soup = BeautifulStoneSoup(''.join(doc))
data = soup.findAll("uri")

2 个回答

0

关于你提到的BeautifulSoup,text是用来获取每个<uri>标签内容的工具。在这里,我用列表推导式把信息提取出来:

>>> uris = [uri.text for uri in soup.findAll('uri')]
>>> len(uris)
15
>>> print uris[0]
http://twitter.com/MarieJeppesen

不过,正如zeekay所说,使用Twitter的REST API查询Twitter会更好。

1

不要用BeautifulSoup来解析Twitter的数据,应该使用他们的API(另外也不要用BeautifulSoup,建议使用lxml)。关于你的问题:

import urllib
from BeautifulSoup import BeautifulSoup

resp = urllib.urlopen("http://search.twitter.com/search.atom?q=travel")
soup = BeautifulSoup(resp.read())
for uri in soup.findAll('uri'):
    uri.extract()

撰写回答