python+hugo+nginx | 实现博客主页每日一图
前言
在建博客之前,我现在的域名访问的对象,是使用nginx部署在服务器的一个页面,并且由于加入了python脚本,这个页面每天都会更新,每天都会显示当天日期和每天都不一样的图片,现在可以通过这个链接访问:
https://download.chenxuefan.cn/
在建了博客之后,我也想把这个功能集成过来,于是就有了这篇文章。
爬取图片篇
这里用到的API接口是来自词霸的,每天零点更新
通过向这条API发送请求,我们可以得到它返回的信息是这样的一段json:
{'sid': '3856', 'tts': 'https://edu-wps.ks3-cn-beijing.ksyun.com/audio/697196205cba75132a2adb5f6226a623.mp3', 'content': 'The best way out is always through.', 'note': '最好的出路永远都是勇往直前。', 'love': '0', 'translation': '新版每日一句', 'picture': 'https://edu-wps.ks3-cn-beijing.ksyun.com/image/e3335242fa173999650a7293bccf9845.jpg', 'picture2': 'https://edu-wps.ks3-cn-beijing.ksyun.com/image/205e6f4c3c9b91f33d84612217ca9e9c.jpg', 'caption': '词霸每日一句', 'dateline': '2020-08-16', 's_pv': '0', 'sp_pv': '0', 'fenxiang_img': 'https://edu-wps.ks3-cn-beijing.ksyun.com/image/e41d27593014c52fe7bd73a1566891ce.png', 'picture3': 'https://edu-wps.ks3-cn-beijing.ksyun.com/image/84bbb715bc74b288fcb3aa3b2738f0bc.jpg', 'picture4': 'https://edu-wps.ks3-cn-beijing.ksyun.com/image/6699f9fcebb7d3730485d793f83d3f66.jpg', 'tags': []}
而我需要的每日一图的URL链接则是存储在fenxiang_img
这个对象里面的,因此很简单就可以获取到每日一图,编写代码:
在这里我把图片保存了两次,一个是以日期
命名,用于保留记录,一个命名为main.png
,用于后续链接访问;接着的代码,我用了python的schedule模块,设定为每日零点执行任务。
写好代码之后,放在服务器里面运行,并且使用nohup
设置运行不受窗口关闭影响,将运行日志输出到nohup.out
, ‘&’ 号表示在后台运行。
nohup python3 main.py &
exit
运行之后,查看python相关进程:
ps -ef|grep python
图片搞定之后,就可以用nginx部署web服务了
Nginx部署
在上一步骤中,我的图片保存的路径是:/home/chenxuefan/html/pic/main.png
因此在配置文件nginx.conf中可以如下编写:
上面的配置设置为,使用服务器IP访问,并且是888端口
配置完成之后,重启nginx:service nginx restart
重启成功之后就可以这样访问到我的图片了:
https://download.chenxuefan.cn/pic/main.png
搞定每日的图片链接之后,就可以在hugo主页里添加图片了
hugo部署
在本地博客项目中,需要修改的文件是:./themes/cactus/layouts/index.html
打开文件
在第二行的位置添加图片:
<img height="921" width="706" src="https://download.chenxuefan.cn/pic/main.png">
保存文件,就可以上传代码部署上线了