因项目要实现小程序分享图片截屏转发的功能,写了一个后台接口,踩了不少坑,趁着还没忘记下来。

《selenium webdriver学习(二十二)------------XVFB实现selenium在linux上》

坑1:缺失字体导致样式失败

  • ubuntu服务器上没有界面,要用Firefox或者Chrome的webdriver的话需要用虚拟窗口,xvfb
  • 用phantomjs可以不用界面,减少内存消耗
  • 因为是截屏,所以样式很重要,linux的字体配置是个坑,得在网页模板里添加font-family,linux 可以安装文泉驿字体,安装方法可以百度。

坑2:python文件编码未设置导致写入失败

 # 增加encoding='utf-8'
 with open(tmp_html_path,'w+', encoding='utf-8') as f:

接口设计如下

1. 接受用户参数
2. 有个网页html样式模板
3. 用post过来的参数替换网页的模板里的对应内容
4. 用webdriver保存图片
5. crop截屏
6. 返回图片链接(如果不是即时所需,最好放在七牛云上减少服务器负载,但因为是需要及时响应,所以直接放在服务器即可)
7. 文件命名用时间戳或者其他特定的名称