今天分享一下我搞定的一个“今日新鲜”的小玩意儿,就是用Python脚本每天自动抓取几个我关注的科技博客的最新文章,然后推送到我的微信上。
想法很简单,就是想偷懒,不想每天打开一堆网页去看最新的科技资讯。作为一个伪Geek,必须得有点自己的“效率工具”嘛
说干就干,我先是找了几个科技博客,把它们的RSS订阅地址扒了出来。这步很简单,大部分博客都会在页面上放RSS的图标,直接点过去就能找到。
接下来就是写Python脚本。我已经很久没碰Python了,之前都是用Java搞后端,这回算是捡起来了。
我安装了`feedparser`这个库,专门用来解析RSS订阅的。`pip install feedparser`,搞定!
然后,开始写代码。我先写了一个函数,用来读取RSS订阅,把最新的文章标题和链接抓取下来。代码大概是这样:
python
import feedparser
def get_latest_articles(rss_url):
feed = *(rss_url)
articles = []
for entry in *:
*({'title': *, 'link': *})
return articles
有了这个函数,我就可以抓取每个博客的最新文章了。我需要把这些文章推送到微信上。
这里我用了`itchat`这个库,它可以模拟微信登录,然后发送消息。`pip install itchat`,安装!
然后,我写了一个函数,用来发送微信消息:
python
import itchat
def send_wechat_message(message):
*_login(hotReload=True) # 首次登录后后续自动登录
*(message, toUserName='filehelper') # 发送到文件传输助手
注意,这里我用的是`filehelper`,也就是微信的文件传输助手,方便我自己查看。
就是把两个函数串起来,每天定时运行。
我用Python的`schedule`库来实现定时任务。`pip install schedule`,安装!
然后,我写了一个主函数,把所有的步骤都放在一起:
python
import schedule
import time
def main():
rss_urls = ['博客1的RSS地址', '博客2的RSS地址', '博客3的RSS地址'] # 替换成你自己的RSS地址
all_articles = []
for url in rss_urls:
articles = get_latest_articles(url)
all_*(articles)
message = ''
for article in all_articles:
message += article['title'] + '\n' + article['link'] + '\n\n'
if message:
send_wechat_message(message)
print('消息已发送')
else:
print('没有新文章')
*().*("08:00").do(main) # 每天早上8点运行
# *(1).*(main) # 每分钟运行一次,用于调试
while True:
*_pending()
*(60)
OK,代码写完了,接下来就是测试。
我先是把`*().*("08:00").do(main)` 改成 `*(1).*(main)`,让脚本每分钟运行一次,方便调试。
运行脚本,发现`itchat`登录的时候需要扫码。扫码登录之后,果然收到了微信消息,里面包含了最新的文章标题和链接。
搞定!
我把定时任务改回每天早上8点运行,然后把脚本放在服务器上,让它每天自动运行。
每天早上我都能收到最新的科技资讯,感觉真不错!
这个脚本还有很多可以改进的地方,比如可以添加文章过滤功能,只推送我感兴趣的文章;可以添加错误处理,防止脚本因为一些小问题而崩溃;可以把微信推送改成企业微信推送,方便团队成员查看。
这个小玩意儿虽然简单,但是很有用。希望这个分享能给大家带来一些启发。
还没有评论,来说两句吧...