独立的基于django的提要聚合器。

newspeak的Python项目详细描述


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

它的功能

newspeak是一个feed聚合器,具有用于关键字筛选的高级功能 以及链接内容提取,作为standalone django应用程序实现。

架构

newspeak执行以下任务(按顺序):

  1. 根据Feed模型(并行)获取指定的rss/atom提要。
  2. 使用feedparser分析源。
  3. (可选)基于KeywordFilter模型,对标题和/或摘要应用每个提要包含/排除关键字筛选器。
  4. (可选)使用xpath表达式从提要条目的链接url中提取摘要数据,使用lxml
  5. (可选)使用xpath表达式从feed条目的链接url中提取存储模块信息,使用lxml
  6. 将结果提要信息本地存储在数据库中。
  7. 在单个rss/atom提要中提供所有提要条目的聚合。

通过应用程序的feed数据流大致如下(给出一些示例feed和关键字过滤器):

[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]---------------------------------------------------------/

安装

开始使用newspeak非常容易,这要归功于david cramer的出色表现 logan用于制作独立的django应用程序。 只需执行以下步骤:

  1. 安装时,您可以轻松地编写代码:

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

    如果您很聪明并且喜欢保持python环境的干净,请执行以下操作 在一个VirtualEnv里。

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

    newspeak init
    
  3. 通过编辑设置文件执行(可选)配置。因为 《新闻高峰》是根据Django改编的 available Django settings 可以使用。此外,还有一些特定于新高峰的设置:

    • newspeak_threads:用于爬网的(轻量级)线程数 输入数据。
    • newspeak_metadata:生成的输出源中使用的元数据。

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

  4. (可选)运行测试:

    newspeak test newspeak
    

    这可能需要一段时间,所以去拿杯咖啡来。如果失败了, 请提供命令的输出newspeak test newspeak–traceback 在github上的issue中。

  5. 创建管理员用户和sqlite数据库(可选择适当的数据库):

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

    newspeak run_gunicorn
    
  7. 在浏览器中打开http://127.0.0.1:8000/admin/,添加一些feed。只有 URL是必需的,将获取描述和标题 以及第一组条目。

  8. (可选)为源配置一个或多个基于关键字的筛选器。

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

    newspeak update_feeds
    

    (可选地,添加-v<;1 2 3>;以获取有关流程的更多反馈。)

  10. 看看漂亮的feeds:openhttp://127.0.0.1:8000/all/rss/或者 http://127.0.0.1:8000/all/atom/在您最喜欢的feed阅读器中。全部输入 订阅源将在那里聚合。

    或者,使用的原始feed、关键字和xpath表达式 一个名为feeds\u bof.json的fixture中包含了一些自由。这个 可使用以下方法加载夹具:

    newspeak loaddata feeds_bof
    
  11. Cronjob设置为自动 使用newspeak update_feeds命令更新feed数据。为了 例如,每小时更新提要的cron作业可以如下所示:

    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
    

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Synth外观和感觉什么都不做?   java为什么JavaFX在使用文本组件时会在字母之间添加额外的间距?我该如何修复它?   java四位数字程序:分组数字   java我应该如何创建这个新页面?JSP还是servlet?   java将hashmap作为avalue添加到hashmap中   java如何使xmemcached更快   一个流中的java筛选器和set()   EJB模块和HTTP路由器模块之间的java通用绑定   java线程处理多个rest调用   java什么是运算符重载,它与多态性不同吗?   java投票系统错误