php 抓取网页生成图片(如何用phantomjs保存的百度首页截图.io图片?)

优采云 发布时间: 2021-10-31 22:14

  php 抓取网页生成图片(如何用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中文网。转载请注明出处。感谢您的尊重!如果您有任何疑问,请与我们联系

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线