Feedparser:python处理rss订阅

简介

feedparser是一款python上的rss订阅处理工具。能够非常方便地将rss源文件转化为可供读取的字典、列表文件。

文档

使用

推荐从string对象进行转化,这样我们在最开始获取string字段时还可以添加其他可能操作例如跨过cloudflare。

import feedparser

# Parsing a feed from a remote URL
d = feedparser.parse('http://feedparser.org/docs/examples/atom10.xml')

# Parsing a feed from a local file
d = feedparser.parse(r'c:\incoming\atom10.xml')

# Parsing a feed from a string
rawdata = """<rss version="2.0">
<channel>
<title>Sample Feed</title>
</channel>
</rss>"""
d = feedparser.parse(rawdata)

获取文章内容使用,d.entries,该属性类型为列表,表示一组文章的条目。推荐使用vscode调试以查看entries的具体结构


>>>type(d.entries)    #类型为列表
<class 'list'>
>>>len(d.entries)   #一共20篇文章
20
>>>[e.title for e in d.entries][:5]         #列出前5篇文章的标题
['僵尸进程 - 乌龟运维', '深入浅出 spring-data-elasticsearch - 基本案例详解(三 - 泥瓦匠BYSocket', 'js继承 - huanglei-', 'ionic 使用了 crosswalkwebview 所产生的bug 及 解决方案 - FEer_llx', '关于并发你真的了解吗?(二) - 心灬无痕']
>>>d.entries[0].summary   #第一篇文章的摘要  和d.entries[0].description功能一样
'在UNIX系统中,僵尸进程是指完成执行(通过exit系统调用,或运行时发生致命错误或收到终止信号所致)但在操作系统的进程表中仍 然有一个表项(进程控制块PCB),处于”终止状态“的进程。这发生于子进程需要保留表项以允许其父进程读取子进程的exit status:一旦退出态通过wait系统调用读取,僵尸'

示例

GitHub上,使用此库搭建的RSS TG bot: https://github.com/BoKKeR/RSS-to-Telegram-Bot https://github.com/cbrgm/telegram-robot-rss

rawdata = scraper.get(feed).text
for entry in feedparser.parse(rawdata)['entries']:

参考:

  1. https://www.cnblogs.com/bbn0111/p/7056366.html