网页截图API接口,一键自动生成网页截图
背景
最近在开发一个小程序,其中有一个帮助模块,内容为帮助文章列表,文章内容为网站后台编辑的富文本格式。鉴于小程序的特殊性,其对html格式的富文本支持并不友好。
刚开始有人开发了wxparse插件,后来微信提供了rich-text组件,但是这两者存在一些问题。
思路
后台编辑的文章样式经过wxparse或者richtext组件显示后,都存在一些兼容性问题。如果我们将文章内容做成图片,然后用image来下显示应该可以达到比较理想的效果。
但是没一篇文章都找美工区设计一张图片费时费力,修改还费劲。
如果我们后台编辑的文章能自动生成一个图片就完美了。
方案
查询后发现国外网站thumb.io提供了类似的服务,可以利用API接口将指定地址保存为图片。但是经过测试发现图片并不清晰,而且访问速度非常慢。然后我就自己安装了phantomjs并进行了测试,效果比较理想。

用phantomjs保存的百度首页截图
为了实现自动化,我还做成了web api。通过将对应文章的网址发送到指定的api就可以自动生成截图(异步方式)。具体方法就是有截图请求的时候,将请求保存到数据库,然后服务器上跑一个程序挨个执行截图操作,截图后修改对应请求的状态。
----------------------------------------------------
API接口({}中的内容为参数值)
使用方法:将需要截图的网址传递到通过生成截图请求接口,一段时间(建议10秒)后再通过查询接口查询,如果返回的code=0,status=1的时候,直接将thumb保存到本地即可。
生成截图请求:http://thumb.loxn.cn/?url={URL}
说明:URL参数必须进行urlencode,否则可能出错
实例:http://thumb.loxn.cn/?url=http%3a%2f%2fwww.cnblogs.com%2fdragondean%2f
返回:JSON格式
code 0 成功,1 网址格式错误, 2 网址已存在
msg 错误信息(仅code不为0是存在)
task_id 任务ID,查询状态时需要用到(code为0或者2时)
key 查询秘钥,查询状态时需要用到(code为0或者2时)
status 任务状态,如果任务已存在则会返回此状态,-1表示失败,0表示处理中,1表示已完成
thumb 截图地址,可直接将此图片下载到本地 (code为2且status为1时)
err_msg 错误信息,仅status=-1时存在
查询任务状态:http://thumb.loxn.cn/?a=query&task_id={TASK_ID}&key={KEY}
说明:task_id和key都是生成请求时返回,必填
实例:http://thumb.loxn.cn/?a=query&task_id=1&key=eb8578633e5cb22377ee85641204494f
返回:JSON
code 返回状态,0成功,3 任务不存在,4 查询秘钥错误
status code为0时,status=-1表示失败,status=0表示处理中,status=1表示已完成
thumb code位0且status为1时,截图地址,可直接将此图片下载到本地
err_msg 错误信息,仅status=-1时存在
----------------------------------------------------
接口暂时为测试状态,随时可能发生变化或者变更,届时将在此文章更新,请及时关注。也可以加入QQ群563752274获得最新的进展。
网页截图API接口,一键自动生成网页截图的更多相关文章
- Api文档自动生成工具
java开发,根据代码自动生成api接口文档工具,支持RESTful风格,今天我们来学一下api-doc的生成 作者:互联网编程. 欢迎投稿,一起交流技术 https://www.jianshu.co ...
- SpringBoot18 Swagger、API接口文档生成、WireMock、模拟后台数据
1 Swagger 1.1 简述 前后端分离的项目需要前后端开发人员协同工作,后台开发人员需要给到前端开发者一套API文档:利用Swagger可以简单高效的帮助后台开发者生成RestfulAPI开发文 ...
- 使用swagger实现在线api文档自动生成 在线测试api接口
使用vs nuget包管理工具搜索Swashbuckle 然后安装便可 注释依赖于vs生成的xml注释文件
- 一键自动生成 java junit 测试代码神器 gen-test-plugin 入门介绍
gen-test-plugin 我们日常编写代码的过程中,经常需要为代码编写测试案例. 随着对代码质量的要求越来越高,很多公司开始通过代码的测试覆盖率作为 QA 的一个评定指标. 本框架可以一键生成所 ...
- API文档自动生成,Swagger的配置
ASP.NET的部署方式 第一步:引用程序集 打开NuGet程序包管理器,搜索Swagger,安装第一个,注意画圈的地方, 已经包含主程序和UI了,安装完成后会在根目录App_Start文件夹下生成S ...
- 基于Metaweblog API 接口一键发布到国内外主流博客平台
之前的生活 之前一直使用evenote写博客和日志,其实还是挺方便的.但是我一直都希望能够同步到国内的博客和国外的blogspot等主流博客平台.而强大everote只提供了facebook.twit ...
- Jmeter在Http Rest接口中自动生成签名(Json格式请求参数)
第一步: 签名的java类生成jar包,导入到jmeter的lib目录下(依赖的第三方包也要导入) 第二步:编写jmeter脚本,这里使用BeanShell 进行签名串的生成,目录结构如下: Bean ...
- PHP开发api接口 -- 安全验证 生成签名
转载博客 ————. http://blog.csdn.net/li741350149/article/details/62887524 REST模式中HTTP请求方法(GET,POST,PUT,DE ...
- 利用ShowDoc自动生成api接口文档
最近在做新项目,感觉写完一个接口 还要去再写一遍api文档 挺浪费时间的,所以借用ShowDoc的api开放功能 自动生成api文档. 首先 去 https://www.showdoc.cc/ 注册一 ...
随机推荐
- 关于React setState的实现原理(三)
前面提到事务即将结束时,会去调用FLUSH_BATCHED_UPDATES的flushBatchedUpdates方法执行批量更新,该方法会去遍历dirtyComponents,对每一项执行perfo ...
- PostgreSQL查询长连接
apple=# select pid, backend_start, xact_start, query_start, waiting, state, backend_xid from pg_stat ...
- JavaScript学习(一)——基础知识查漏补缺
标签script 我们知道,html要使用js就要使用<script>标签. 两种方式: 一是直接在<script>这里</script>写入代码. 二是在别的文件 ...
- 20155239 2016-2017-2 《Java程序设计》第8周学习总结
教材学习内容总结 - NIO 在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统一次一个字节地处理数据,一个输入流产生一个字节的数据,一个输出流消费一个字节的数据,面向流的I/O速 ...
- MemSQL start[c]up Round 1 B题
题目链接 http://codeforces.com/contest/325/problem/B 第一遍写了暴搜,果断TLE 然后上了二分,结果120组数据只有第40组过不了,我就写了奇怪的东西... ...
- python print的用法
第一种是格式化的 strHello = "the length of (%s) is %d" %('Hello World',len('Hello World')) import ...
- oracle 脚本创建数据库的相关文章,教程,源码
学步园推荐专题: 关于oracle 脚本创建数据库的相关文章 文章标题 文章链接 文章简介 oracle命令行创建数据库的示例脚本 http://www.xuebuyuan.com/964527.ht ...
- ubuntu17.10安装LAMP并测试部署php探针系统
ubuntu17.10修改密码以及安装LAMP并部署php探针系统 步骤1:ubuntu17.10配置IP (这个版本配置IP方式改变较大,apt-get upgrade更新至最新以前配置方式也可以用 ...
- Application共享数据
1.Application与Session的区别 Application对象:实现程序级别的数据共享. Session对象:实现会话级别的数据共享. 当需要整个程序级别的共享信息时,可以使用Appli ...
- 微信小程序详解——页面之间的跳转方式【路由】和参数传递
微信小程序拥有web网页和Application共同的特征,我们的页面都不是孤立存在的,而是通过和其他页面进行交互,来共同完成系统的功能.今天我们来研究小程序页面之间的跳转方式. 1.先导 在Andr ...