自动化是未来的趋势,有些事每天我们日复一日重复做着,像到同一个网站、同一个论坛查看资料、下载资源。RSS feed的出现就替我们省下这个繁琐的工作了,在这还没普及前,我每天都有上百个网站bookmark来追踪。但好死不死,现在仍旧有落后的网站、论坛不晓得这道理,担心让访客用RSS就会切断他们的广告收入完全不提供RSS。
近来就发现百度贴吧、兰寿网论坛等都没有RSS支持,所以我决定自己动手来解决这个问题。这里简短分享解决这些问题的技术思路,其他人想这样解决问题的可以借鉴,网上找关键字学习编程。
- 从网站获取资料
近年来都是使用ruby的,用python也可以进行网站内容抓取。按照网站的情况一般进行10页左右的抓取。如果网站更新不多,也可以减少页数。有些网站会有防止过度频密刷新机制,那么就需要在脚本中加入小小暂停模式。
- 进行规律分析,保存在本地数据库
Firefox或者Chrome都自带developer的工具,可以直接对网站DOM进行分析,了解说内容的位置。然后,就可以使用ruby中nokogiri库来对原始HTML内容进行定位。我一般只抓取标题和链接。
分析后直接保存在sqlite中,使用这个因为sqlite独立并方便管理。在这里数据库表现也并不是重点。数据库主要是与之前下载内容ID核对,重复的内容就没必要再出现。
- 生成RSS文件
使用RSS库生成标准的RSS文件。然后放进dropbox文件中,这样马上就能公开出来给feedly之类的RSS服务商获取内容了。如果本身就在服务器上进行话,直接放进公开的文件夹就好。再不然就是弄个FTP上传上去。
- 自动化
把1、2、3的步骤给连起来自动化。我使用的是mac,所以直接制作launchagent plist。因为即时性也不是重点,所以定时每2-3个小时就自动运行脚本就好。制作后直接安装让mac变成一个小服务器进行这类轻服务。
每天开启自己的RSS软件就有最新的内容了,并且已阅读过的内容不会重复出现。节省大家的时间。此外,你也可以把RSS和torrent下载连起来,只要有最新的电影通知就自动下载。这个也是不错的方法。