如何用 KindleEar 推送无 RSS 的网站内容(中篇)

本文详细介绍了 KindleEar 订阅脚本的工作原理,并使用新闻网站 China Daily    例如,如何为网站编写定制的订阅脚本,编写的订阅脚本可以将指定主题页面的文章内容转换为电子书。

   

目录

   

[ 上篇    ]
1、KindleEar 订阅方式
2、KindleEar 订阅脚本
3、KindleEar 调试环境
1、安装 App Engine SDK
2、获取 KindleEar 源代码
3、 在本地运行KindleEar
[ 中篇    ]
1.创建一个新的订阅脚本
2、订阅脚本的工作原理
3、从网站抽取文章 URL
4、分析 HTML 标签结构
1、 分析文章列表HTML 标签结构
2、 分析文章内容HTML 标签结构
5.测试订阅脚本的推送
[ 下篇    ]
1.文章列表的页面和限制项目
2.修改文章内容的页面和细节
3、上传到 Google App Engine

在开始以下步骤之前,请确保您在本地成功运行 KindleEar 程序,否则,请参考上一篇文章《如何用 KindleEar 推送无 RSS 网站内容(上一篇)》构建操作 KindleEar 调试环境。

1.创建一个新的订阅脚本

首先,我们需要 KindleEar 添加一个新的内置订阅,即创建一个新的订阅脚本。具体步骤是:打开代码编辑器,创建一个新的空文档,输入以下代码(或复制),然后保存到 KindleEar 项目的 books 目录。请注意,文件名的命名是随机的,但必须是英文字符,后缀名必须是 .py,如 chinadaily.py。

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from base import BaseFeedBook # 继承基类BaseFeedBook

# 返回脚本定义的类名def getBook():    return ChinaDaily

# 继承基类BaseFeedBook
class ChinaDaily(BaseFeedBook):
    #  设置生成电子书的元数据   title = u'China Daily' # 设定标题
    __author__ = u'China Daily' # 设定作者     description = u'Chinadaily.com.cn is the largest English portal in China. ' #  定简介    设定简介language = 'en' #          #  包含文章列表的主题页面链接  #  每个主题都是元组,包括主题名和主题页面链接   feeds =              (u'National affairs','http://www.chinadaily.com.cn/china/governmentandpolicy      (u'Society','http://www.chinadaily.com.cn/china/society     ]

这个代码做了 3 的事情:导入 base.py 中基类 BaseFeedBook 继承参数和功能函数;为最终生成的电子书设置标题、作者、介绍、语言等元数据信息;指定两个主题页面包含文章列表 URL。

现在我们已经为 KindleEar 添加了新的内置订阅。访问 网页浏览器http://localhost:8080    并登录帐号,点击导航上的我的订阅进入订阅管理页面,可以在未订阅在列表中看到新添加的订阅。

如上图所示,点击新订阅条目背后的内容【订阅】按钮添加到已订阅列表。如下图所示,点击导航上的高级设置”并进入“现在投递页面,保持新订阅处于检查状态,点击【推送】按钮可以手动执行新添加的订阅脚本。但是目前脚本还没有实际功能,只会产生一个状态 nonews 空日志。

在点击【推送】按钮执行订阅脚本后,可以看到终端(或命令提示符)输出了以下两条信息:

INFO     2019-05-12 13:13:37,408 Worker.py:235] No new feeds.
INFO 2019-05-12 13:13:37,425 module.py:861] worker: "GET /worker?u=admin

阅读剩余
THE END