python+hugo+nginx | 实现博客主页每日一图

前言

在建博客之前,我现在的域名访问的对象,是使用nginx部署在服务器的一个页面,并且由于加入了python脚本,这个页面每天都会更新,每天都会显示当天日期和每天都不一样的图片,现在可以通过这个链接访问:

https://download.chenxuefan.cn/

在建了博客之后,我也想把这个功能集成过来,于是就有了这篇文章。

爬取图片篇

这里用到的API接口是来自词霸的,每天零点更新

http://open.iciba.com/dsapi/

通过向这条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这个对象里面的,因此很简单就可以获取到每日一图,编写代码:

image-20200816184656737

在这里我把图片保存了两次,一个是以日期命名,用于保留记录,一个命名为main.png,用于后续链接访问;接着的代码,我用了python的schedule模块,设定为每日零点执行任务。

写好代码之后,放在服务器里面运行,并且使用nohup设置运行不受窗口关闭影响,将运行日志输出到nohup.out, ‘&’ 号表示在后台运行。

nohup python3 main.py &
exit

运行之后,查看python相关进程:

ps -ef|grep python

image-20200816185547872

图片搞定之后,就可以用nginx部署web服务了

Nginx部署

在上一步骤中,我的图片保存的路径是:/home/chenxuefan/html/pic/main.png

因此在配置文件nginx.conf中可以如下编写:

image-20200816190147974

上面的配置设置为,使用服务器IP访问,并且是888端口

配置完成之后,重启nginx:service nginx restart

重启成功之后就可以这样访问到我的图片了:

https://download.chenxuefan.cn/pic/main.png

搞定每日的图片链接之后,就可以在hugo主页里添加图片了

hugo部署

在本地博客项目中,需要修改的文件是:./themes/cactus/layouts/index.html

打开文件image-20200816191121597

在第二行的位置添加图片:

<img height="921" width="706" src="https://download.chenxuefan.cn/pic/main.png">

保存文件,就可以上传代码部署上线了

后记


843 字