跳转到主要内容

基于Django的独立新闻聚合器。

项目描述

https://secure.travis-ci.org/bitsoffreedom/newspeak.png?branch=master

功能说明

Newspeak是一个具有高级关键词过滤和链接内容提取功能的新闻聚合器,作为独立的Django应用程序实现。

架构

Newspeak执行以下任务(按顺序)

  1. 根据Feed模型(并行)获取指定的RSS/Atom订阅源。

  2. 使用feedparser解析订阅源。

  3. (可选)根据KeywordFilter模型在标题和/或摘要上应用每个订阅源的全局/排除性关键词过滤器。

  4. (可选)使用XPath表达式从订阅源条目的链接URL中提取摘要数据,使用lxml

  5. (可选)使用XPath表达式从订阅源条目的链接URL中提取封装信息,使用lxml

  6. 将结果订阅源信息本地存储在数据库中。

  7. 在一个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应用程序成为独立的应用。只需执行以下步骤:

  1. 安装以便您可以轻松编码

    pip install -e \
      git+https://github.com/bitsoffreedom/newspeak.git#egg=newspeak

    如果您聪明并且喜欢保持Python环境整洁,请在VirtualEnv中这样做。

  2. ~/.newspeak/newspeak.conf.py中初始化配置

    newspeak init
  3. 通过编辑设置文件进行(可选)配置。由于Newspeak基于Django,可以使用所有可用的Django设置。此外,还有一些Newspeak特定的设置

    • NEWSPEAK_THREADS:用于爬取数据流使用的(轻量级)线程数。

    • NEWSPEAK_METADATA:用于生成的输出数据流的元数据。

    有关这些设置的更详细描述和示例,请查看上一步骤中生成的初始设置文件。

  4. (可选)运行测试

    newspeak test newspeak

    这可能需要一段时间,所以去拿一杯咖啡。如果出现故障,请在GitHub上的问题中提供命令的输出newspeak test newspeak –traceback

  5. 创建管理员用户和SQLite数据库(正确数据库是可选的)

    newspeak syncdb --migrate
  6. 启动本地web服务器

    newspeak run_gunicorn
  7. 在您的浏览器中打开http://127.0.0.1:8000/admin/,添加一些数据源。只需URL即可,描述和标题将自动获取,以及第一组条目。

  8. (可选)为您的数据源配置一个或多个基于关键词的过滤器。

  9. 确保以下命令执行以更新数据源

    newspeak update_feeds

    (可选,添加-v <1|2|3>以获得更多反馈。)

  10. 查看漂亮的订阅源:在您的最喜欢的订阅源阅读器中打开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
  11. 设置一个Cronjob以使用newspeak update_feeds命令自动更新数据源。例如,每小时更新一次数据源的cron job可能如下所示:

    0 * * * *  <full_path_to_>/newspeak update_feeds

升级

  1. 再次运行PIP安装命令

    pip install -e \
      git+https://github.com/bitsoffreedom/newspeak.git#egg=newspeak
  2. (可选)运行测试

    newspeak test newspeak
  3. 应用任何数据库迁移

    newspeak migrate

项目详情


下载文件

下载适合您的平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分布

newspeak-0.1.tar.gz (29.9 kB 查看哈希值

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面