Python RSS阅读器文本过滤

2024-09-29 00:20:09 发布

您现在位置:Python中文网/ 问答频道 /正文

为了更好地学习python3.4,我决定创建一个“实用”的程序,它只需读取您提供的链接的RSS提要。我在用CNN的RSS源进行测试,得到了要打印的描述,但是描述中也包含了很多我不需要的“垃圾”,有没有一种快速删除不必要文本的方法?基本上,我想保留“以NBA创纪录的价格出售洛杉矶快船的交易可能会向前推进,加州遗嘱认证法官星期一裁定。”并删除其他所有内容。谢谢。在

完整的Rss标记:

<description>A deal to sell the Los Angeles Clippers for an NBA record price may move forward, a California probate judge ruled Monday.&lt;div class="feedflare"&gt;
&lt;a href="http://rss.cnn.com/~ff/rss/cnn_topstories?a=FMi4oVkdS58:sssPw82MBtA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/rss/cnn_topstories?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://rss.cnn.com/~ff/rss/cnn_topstories?a=FMi4oVkdS58:sssPw82MBtA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/rss/cnn_topstories?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://rss.cnn.com/~ff/rss/cnn_topstories?a=FMi4oVkdS58:sssPw82MBtA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/rss/cnn_topstories?i=FMi4oVkdS58:sssPw82MBtA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://rss.cnn.com/~ff/rss/cnn_topstories?a=FMi4oVkdS58:sssPw82MBtA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/rss/cnn_topstories?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://rss.cnn.com/~ff/rss/cnn_topstories?a=FMi4oVkdS58:sssPw82MBtA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/rss/cnn_topstories?i=FMi4oVkdS58:sssPw82MBtA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rss/cnn_topstories/~4/FMi4oVkdS58" height="1" width="1"/&gt;</description>

Tags: ltgtsrccomhttpimgcnnrss
1条回答
网友
1楼 · 发布于 2024-09-29 00:20:09

“有没有快捷的方法,”你问?也许 吧。在

首先,通过复制你给我们的全部文本并通过这个在线HTML解码器运行,看看你真正得到了什么:

http://www.opinionatedgeek.com/DotNet/Tools/HTMLEncode/Decode.aspx

这会让你知道你在处理什么。您需要对文本进行解码,使其看起来像正确的HTML。然后您将看到,嵌套在description标记中,您在感兴趣的文本后面有一个div标记和一个img标记。如果您认为这是您从feed中得到的结果,那么安全的做法是在<div>之前捕获所有内容并将其余内容丢弃。在

看看这个关于解码HTML的答案:

https://stackoverflow.com/a/2087433/155167

一旦解码了HTML,就可以使用find对象的find方法。在

# Assume text is decoded HTML, so the <div> looks like a normal tag.
start = len('<description>')
end = text.find('<div>')
text = text[start: end]

相关问题 更多 >