Python RSS阅读器文本过滤

时间:2014-07-29 14:39:25

标签: python string python-3.x filter rss

为了更好地学习 python 3.4 ,我决定创建一个“实用”程序,只需读取您提供的链接的RSS源。我正在测试使用CNN RSS提要并得到描述打印,但描述中还包含了很多我不需要的“废话”,是否有快速删除不必要文本的方法?一位加州遗嘱认定法官周一裁定,“基本上我想要保持”出售洛杉矶快船以达到NBA创纪录价格的交易可能会向前推进。并删除其他一切。感谢。

Full 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>

1 个答案:

答案 0 :(得分:0)

&#34;有快速的方法,&#34;你问?也许

首先,通过复制您提供给我们并通过此在线HTML解码器运行的所有文本来查看您真正得到的内容:

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

这应该让你知道你正在处理什么。您需要解码文本,使其看起来像正确的HTML。然后,您会看到,嵌套在description标记内,您有div标记和img标记,跟随您感兴趣的文字。如果您相信这是你从饲料中得到的东西 ,然后在<div>之前抓住所有东西并将剩下的东西扔掉,这是安全的。

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

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

对HTML进行解码后,您可以使用find string对象的方法。

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