我不久前为自己构建了这个小RSS阅读器,我觉得有兴趣更新它以排除描述标签中的垃圾。我现在忙着测试它以删除&'lt; (所有内容)&'gt;从描述标签和我无法得到这个仪式。
到目前为止,我的代码看起来像这样
from re import findall
from Tkinter import *
from urllib import urlopen
disc = []
URL = 'http://feeds.sciencedaily.com/sciencedaily/matter_energy/engineering?format=xml'
O_W = urlopen(URL).read()
disc_ex = findall('<description>(.*)</description>',O_W)
for i in disc_ex:
new_disc = i.replace(findall('<(.*)>',i),'')
disc.extend([new_disc])
所以在我试图删除一些垃圾文本的new_disc代码行之前,我通常会看到我的文字看起来像这样
"Tailored DNA structures could find targeted cells and release their molecular payload selectively into the cells.<img src="http://feeds.feedburner.com/~r/sciencedaily/matter_energy/engineering/~4/J1bTggGxFOY" height="1" width="1" alt=""/>"
我想要的只是没有垃圾的文本,所以基本上只是:
"Tailored DNA structures could find targeted cells and release their molecular payload selectively into the cells."
对我有什么建议吗?
答案 0 :(得分:1)
有几种解决方案,例如BeautifulSoup。要遵循您的想法,请避免使用'&lt;'中的字符串... '&GT;'括号只是改变最后一行:
...
for i in disc_ex:
new_disc = i.replace(findall('<(.*)>',i),'')
disc.extend([re.sub(r'<(.*)/>','',new_disc)])