基于Django的独立新闻聚合器。
项目描述
功能说明
Newspeak是一个具有高级关键词过滤和链接内容提取功能的新闻聚合器,作为独立的Django应用程序实现。
架构
Newspeak执行以下任务(按顺序)
根据Feed模型(并行)获取指定的RSS/Atom订阅源。
使用feedparser解析订阅源。
(可选)根据KeywordFilter模型在标题和/或摘要上应用每个订阅源的全局/排除性关键词过滤器。
(可选)使用XPath表达式从订阅源条目的链接URL中提取摘要数据,使用lxml。
(可选)使用XPath表达式从订阅源条目的链接URL中提取封装信息,使用lxml。
将结果订阅源信息本地存储在数据库中。
在一个RSS/Atom订阅源中提供所有订阅源条目的聚合。
应用中数据流的过程大致如下(假设一些示例数据和关键词过滤器):
[Feed 1]-[Keyword filter 1]-[Keyword filter 2]-[XPath content extraction]-----------------------------`\ [Feed 2]--------------------[Keyword filter 3]-[XPath summary extraction]-[XPath content extraction ] -+--[Aggregate output feed] [Feed 3]-[Keyword filter 3]-[Keyword filter 4]---------------------------------------------------------/
安装
由于David Cramer的出色logan,开始使用newspeak非常容易,它使Django应用程序成为独立的应用。只需执行以下步骤:
安装以便您可以轻松编码
pip install -e \ git+https://github.com/bitsoffreedom/newspeak.git#egg=newspeak
如果您聪明并且喜欢保持Python环境整洁,请在VirtualEnv中这样做。
在~/.newspeak/newspeak.conf.py中初始化配置
newspeak init
通过编辑设置文件进行(可选)配置。由于Newspeak基于Django,可以使用所有可用的Django设置。此外,还有一些Newspeak特定的设置
NEWSPEAK_THREADS:用于爬取数据流使用的(轻量级)线程数。
NEWSPEAK_METADATA:用于生成的输出数据流的元数据。
有关这些设置的更详细描述和示例,请查看上一步骤中生成的初始设置文件。
(可选)运行测试
newspeak test newspeak
这可能需要一段时间,所以去拿一杯咖啡。如果出现故障,请在GitHub上的问题中提供命令的输出newspeak test newspeak –traceback。
创建管理员用户和SQLite数据库(正确数据库是可选的)
newspeak syncdb --migrate
启动本地web服务器
newspeak run_gunicorn
在您的浏览器中打开http://127.0.0.1:8000/admin/,添加一些数据源。只需URL即可,描述和标题将自动获取,以及第一组条目。
(可选)为您的数据源配置一个或多个基于关键词的过滤器。
确保以下命令执行以更新数据源
newspeak update_feeds
(可选,添加-v <1|2|3>以获得更多反馈。)
查看漂亮的订阅源:在您的最喜欢的订阅源阅读器中打开http://127.0.0.1:8000/all/rss/或http://127.0.0.1:8000/all/atom/。所有输入数据源都将聚合在那里。
或者,原始数据源、关键词和由Bits of Freedom使用的XPath表达式包含在名为feeds_bof.json的修复中。可以使用以下方式加载此修复:
newspeak loaddata feeds_bof
设置一个Cronjob以使用newspeak update_feeds命令自动更新数据源。例如,每小时更新一次数据源的cron job可能如下所示:
0 * * * * <full_path_to_>/newspeak update_feeds
升级
再次运行PIP安装命令
pip install -e \ git+https://github.com/bitsoffreedom/newspeak.git#egg=newspeak
(可选)运行测试
newspeak test newspeak
应用任何数据库迁移
newspeak migrate
项目详情
newspeak-0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f61105d96e8a92d227b7fe7fe49dcb61c047948338c67204c2b2053d7a4500da |
|
MD5 | 064413de8c9b8ccb876406776c676d09 |
|
BLAKE2b-256 | 082ac84583264cb6dc5f6f0c4a0f4a51b67052d14d9f924e5b045b4956877e46 |