前言
本篇属于定制RSS
系列终极一弹,是三种方式中自由度最高、定制化最强的,也需要一定的编程能力。附上前两篇链接:1、利用Feed43为网站自制RSS源;2、如何优雅快速地利用Huginn制作专属RSS。开始之前先对比一下以上三种方式:
方法 | 优势 | 不足 | 复杂性 | 稳定性 | 定制性 |
---|---|---|---|---|---|
Feed43 | 快速、便捷、免费 | 免费版需间隔6小时,部分网站不可用 | 简单 | 一般 | 中 |
Huginn | 快速、安装后可便捷添加 | 专业化程度偏高,需要服务器 | 高 | 高 | 高 |
Python | 高度定制、占用内存小 | 专业化程度偏高,不可随意改正 | 一般 | 高 | 极高 |
看个人需要进行选择,Huginn虽安装麻烦点,但是一个自动化神器,妙用不仅局限于此。
前排提示
Python脚本需要放置在云主机/云服务器上使用,如果你还没有,赶快购置一台吧
需要了解:CSS基础;Python基础;Linux基础命令;利用浏览器开发者工具找到对应内容代码
我的使用环境:腾讯云主机centos7.5,Python2.7(服务器默认已安装的)
开始定制
先上代码,以下代码仅供参考,重要的是学会利用其中的代码和方法。
以下所有操作基于江西师范大学大学教务在线网站
1 |
|
说明:PyRSS2Gen、BeautifulSoup两个模块是需要安装的,安装过忽略,代码基于Python2.7
1 |
|
RSS的本质就是一个固定格式的文件,所以本方法按照以下三步进行,定时执行脚本生成xml文件放置在云服务器上。
抓取特定内容
有的页面可以直接抓取,有的页面需要登录后才能看到,并且有的网站有反爬虫措施,看抓取的网站采取不同方法。本示例先通过BeautifulSoup模块获取教务在线通知的标题和链接,然后再逐一访问链接下的全文内容。
1 |
|
构造RSS格式并输出
获得内容后将内容构造成相关格式,主要利用PyRSS2Gen模块构造
1 |
|
云服务器设置
利用crontab定时执行该脚本并运行生成文件,然后再开启公网可访问的相关服务,一个RSS源就生成了!
crontab设置
连接云服务器后,输入以下命令,设置定时任务
1 |
|
添加如下内容,表示每半小时root用户使用python执行一次位于/local/myrss的jxnu-rss.py脚本,酌情更改。
1 |
|
搭建Http服务
方法有很多,这里使用Python下的SimpleHTTPServer。
SimpleHTTPServer
在 Linux 服务器上或安装了 Python 的机器上,Python自带了一个WEB服务器 SimpleHTTPServer。进入到生成的xml文件所在文件夹,输入如下命令回车
1 |
|
在命令开头加一个nohup,忽略所有的挂断信号,如果当前bash关闭,则当前进程会挂载到init进程下,成为子进程,这样退出关闭服务器连接服务仍旧在运行。以上内容酌情修改,然后浏览器输入http://你的服务器IP:8080/jxnu.xml回车看到RSS内容即表示成功,可以将其添加到RSS阅读器上去了。
可能遇到的问题
- SimpleHTTPServer服务不是很稳定,有时候会访问不了RSS源,重启时好时不好;