背景

最近在开发一个小程序,其中有一个帮助模块,内容为帮助文章列表,文章内容为网站后台编辑的富文本格式。鉴于小程序的特殊性,其对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接口,一键自动生成网页截图的更多相关文章

  1. Api文档自动生成工具

    java开发,根据代码自动生成api接口文档工具,支持RESTful风格,今天我们来学一下api-doc的生成 作者:互联网编程. 欢迎投稿,一起交流技术 https://www.jianshu.co ...

  2. SpringBoot18 Swagger、API接口文档生成、WireMock、模拟后台数据

    1 Swagger 1.1 简述 前后端分离的项目需要前后端开发人员协同工作,后台开发人员需要给到前端开发者一套API文档:利用Swagger可以简单高效的帮助后台开发者生成RestfulAPI开发文 ...

  3. 使用swagger实现在线api文档自动生成 在线测试api接口

    使用vs nuget包管理工具搜索Swashbuckle 然后安装便可 注释依赖于vs生成的xml注释文件

  4. 一键自动生成 java junit 测试代码神器 gen-test-plugin 入门介绍

    gen-test-plugin 我们日常编写代码的过程中,经常需要为代码编写测试案例. 随着对代码质量的要求越来越高,很多公司开始通过代码的测试覆盖率作为 QA 的一个评定指标. 本框架可以一键生成所 ...

  5. API文档自动生成,Swagger的配置

    ASP.NET的部署方式 第一步:引用程序集 打开NuGet程序包管理器,搜索Swagger,安装第一个,注意画圈的地方, 已经包含主程序和UI了,安装完成后会在根目录App_Start文件夹下生成S ...

  6. 基于Metaweblog API 接口一键发布到国内外主流博客平台

    之前的生活 之前一直使用evenote写博客和日志,其实还是挺方便的.但是我一直都希望能够同步到国内的博客和国外的blogspot等主流博客平台.而强大everote只提供了facebook.twit ...

  7. Jmeter在Http Rest接口中自动生成签名(Json格式请求参数)

    第一步: 签名的java类生成jar包,导入到jmeter的lib目录下(依赖的第三方包也要导入) 第二步:编写jmeter脚本,这里使用BeanShell 进行签名串的生成,目录结构如下: Bean ...

  8. PHP开发api接口 -- 安全验证 生成签名

    转载博客 ————. http://blog.csdn.net/li741350149/article/details/62887524 REST模式中HTTP请求方法(GET,POST,PUT,DE ...

  9. 利用ShowDoc自动生成api接口文档

    最近在做新项目,感觉写完一个接口 还要去再写一遍api文档 挺浪费时间的,所以借用ShowDoc的api开放功能 自动生成api文档. 首先 去 https://www.showdoc.cc/ 注册一 ...

随机推荐

  1. js设计模式整理

    单例模式 恶汉式单例 实例化时 懒汉式单例 调用时构造函数模式 1.实现一 function Car(model, year, miles) { this.model = model; this.ye ...

  2. python 机器学习库 —— featuretools(自动特征工程)

    文档:https://docs.featuretools.com/#minute-quick-start 所谓自动特征工程,即是将人工特征工程的过程自动化.以 featuretools 为代表的自动特 ...

  3. Spinner的用法

    1.先自定义一个数组 2.在new一个ArrayAdapter方法: ArrayAdapter<String> adapter = new ArrayAdapter<String&g ...

  4. try...except语句

    try: 执行语句 except 执行语句有异常就执行这一步 else: 执行语句没有异常就执行这一步 finally 不管有没有异常,这一步就要执行

  5. HDU3861The King’s Problem

    HDU3861   kosaraju缩点+最小路径覆盖 为什么是最小路径覆盖呢,我们假设有一个如下DAG图 目前我们1出发到了3处,对于3的儿子4.5.6,肯定是不能彼此到达的.所以最好的情况3只能延 ...

  6. BZOJ3270: 博物馆【概率DP】【高斯消元】

    Description 有一天Petya和他的朋友Vasya在进行他们众多旅行中的一次旅行,他们决定去参观一座城堡博物馆.这座博物馆有着特别的样式.它包含由m条走廊连接的n间房间,并且满足可以从任何一 ...

  7. 51Nod 1088:最长回文子串(暴力)

    1088 最长回文子串  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入 ...

  8. Windows7 SP1 64bit配置IIS7.5和ASP.NET4

    一.安装前的环境 1. Windows7 SP1 64bit: 2. 在安装IIS7.5之前,安装了Visual Studio 2010或.NET Framework4: 二.安装IIS7.5 1.  ...

  9. 前后端分离之让前端开发脱离接口束缚(mock)

    情景:     领导:小吴啊,最近在忙什么啊?     前吴:(心想:我擦勒,难道划水被领导发现了?也不能怪我啊,后台的哥们接口还没给呢,但要是实话实说不就对不起后台哥们了吗?)           ...

  10. python的继承顺序

    python的继承顺序 python 创建类时分为新式类和旧式类 class A: # 经典类 def __init__(self): pass # 新类,可以在这里加 __metaclass__ = ...