如何用 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
阅读剩余
作者:苗敏
链接:https://www.58edu.cc/article/1506477917650104322.html
文章版权归作者所有,58edu信息发布平台,仅提供信息存储空间服务,接受投稿是出于传递更多信息、供广大网友交流学习之目的。如有侵权。联系站长删除。