php 抓取网页生成图片(如何用phantomjs保存的百度首页截图.io图片?)
优采云 发布时间: 2021-10-31 22:14php 抓取网页生成图片(如何用phantomjs保存的百度首页截图.io图片?)
背景
最近正在开发一个小程序。有一个帮助模块,内容是帮助列表文章,文章的内容是网站后台编辑的富文本格式。鉴于小程序的特殊性,其对html格式的富文本支持并不友好。
一开始有人开发了wxparse插件,后来微信提供了富文本组件,但是两者都存在一些问题。
想法
后台编辑文章样式被wxparse或富文本组件显示后,存在一些兼容性问题。如果我们把文章的内容做成图片,再用图片来展示,应该能达到比较理想的效果。
但是每一篇文章,我都去美术区设计图,费时费力,修改也费劲。
如果我们后台编辑的文章能自动生成图片就完美了。
计划
查询后发现,海外网站thumb.io也提供类似服务。可以使用API接口将指定地址保存为图片。但是经过测试,发现图片不清晰,访问速度很慢。然后我自己安装了phantomjs并测试了一下,效果还是比较满意的。
用phantomjs保存的百度首页截图
为了实现自动化,我还做了一个web api。通过将文章对应的URL发送到指定的api,可以自动(异步)生成截图。具体方法是当有截图请求时,将请求保存到数据库中,然后在服务器上运行一个程序,一一进行截图操作,截图后修改相应请求的状态。
-------------------------------------------------- ——
API 接口({} 中的内容为参数值)
使用方法:通过截图生成将需要截图的URL传递到请求界面,一段时间后(推荐10秒)通过查询界面进行查询。如果返回code=0,status=1,直接将thumb保存到本地。能。
生成截图请求:{URL}
注意:url参数必须是urlencoded,否则可能会出错
示例:%3a%2f%2f%2fdragondean%2f
返回:JSON 格式
代码 0 成功,1 URL 格式错误,2 URL 已存在
msg 错误信息(仅当代码不为 0 时)
task_id 任务ID,查询状态时使用(code为0或2时)
key 查询秘钥,用于查询状态(code为0或2时)
status 任务的状态,如果任务已经存在,则返回此状态,-1表示失败,0表示处理中,1表示完成
大拇指截图地址,可以直接下载这张图片到本地(code为2,status为1时)
err_msg 错误信息,仅在 status=-1 时存在
查询任务状态:{TASK_ID}&key={KEY}
注意:task_id和key都是在请求生成的时候返回的,是必填项
例子:
返回:JSON
代码返回状态,0 成功,3 任务不存在,4 查询秘钥错误
当状态码为0时,status=-1表示失败,status=0表示处理中,status=1表示完成
当thumbcode位为0,状态为1时,可以直接下载截图地址到本地
err_msg 错误信息,仅在 status=-1 时存在
-------------------------------------------------- ——
以上就是使用网页截图API接口自动生成网页截图的详细内容。更多详情请关注其他相关php中文网文章!
免责声明:本文原创发表于php中文网。转载请注明出处。感谢您的尊重!如果您有任何疑问,请与我们联系