微信小程序 解析网页内容详解及实例


Posted in Javascript onFebruary 22, 2017

微信小程序 解析网页内容详解

最近在写一个爬虫,需要将网页进行解析供微信小程序使用。文字和图片解析都好说,小程序也有对应的text和image标签可以呈现。而更复杂的,比如表格,则比较棘手,不管是服务端解析还是小程序呈现都很费劲,也很难覆盖所有情况。于是我想,将表格对应的HTML代码转成图片,不失为一种变通的方法。

这里我们采用node-webshot模块,它对PhantomJS进行了轻量封装,可以轻松地将网页以截图形式保存下来。

首先安装Node.js和PhantomJS,然后新建一个js文件,加载node-webshot模块:

const webshot = require('webshot');

定义选项:

const options = {
  // 浏览器窗口
  screenSize: {
    width: 755,
    height: 25
  },
  // 要截图的页面文档区域
  shotSize: {
    height: 'all'
  },
  // 网页类型
  siteType: 'html'
};

这里,浏览器窗口的宽度要根据网页情况合理设置,高度可以设置为一个很小的数值,然后页面文档区域的高度一定要设置为all,宽度默认为窗口宽度,这样就可以把表格以最小的尺寸完整截图。

接下来,定义html字符串:

let html = "target rich text html code, eg: <table>...</table>";

注意,里面的HTML代码一定要去掉换行符,并将双引号替换为单引号。

最后,截图:

webshot(html, 'demo.png', options, (err) => {
  if (err)
    console.log(`Webshot error: ${err.message}`);
});

这样,就实现了从HTML代码到本地图片的转换,后续可以上传到七牛云等。不管是服务端的解析,还是小程序的呈现,都没有什么难度了...

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
文本框回车提交与禁止提交示例
Sep 27 Javascript
jQuery中;function($,undefined) 前面的分号的用处
Dec 17 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
Oct 22 Javascript
使用jQuery调用XML实现无刷新即时聊天
Aug 07 Javascript
three.js实现3D模型展示的示例代码
Dec 31 Javascript
关于Vue的路由权限管理的示例代码
Mar 06 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
Jul 23 Javascript
js+html5 canvas实现ps钢笔抠图
Apr 28 Javascript
详解package.json版本号规则
Aug 01 Javascript
微信小程序拖拽排序列表的示例代码
Jul 08 Javascript
小程序实现简单语音聊天的示例代码
Jul 24 Javascript
从零学习node.js之简易的网络爬虫(四)
Feb 22 #Javascript
js中document.referrer实现移动端返回上一页
Feb 22 #Javascript
基于JS实现bookstore静态页面的实例代码
Feb 22 #Javascript
angular 动态组件类型详解(四种组件类型)
Feb 22 #Javascript
javascript 使用正则test( )第一次是 true,第二次是false
Feb 22 #Javascript
JavaScript实现256色转灰度图
Feb 22 #Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
Feb 22 #Javascript
You might like
php 特殊字符处理函数
2008/09/05 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
php比较相似字符串的方法
2015/06/05 PHP
PHP针对字符串开头和结尾的判断方法
2016/07/11 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
浅析Python中else语句块的使用技巧
2016/06/16 Python
Tornado 多进程实现分析详解
2018/01/12 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
详解python调用cmd命令三种方法
2019/07/08 Python
Django如何将URL映射到视图
2019/07/29 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
什么是java序列化,如何实现java序列化
2012/11/14 面试题
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
学校个人对照检查材料
2014/08/26 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
奉献家乡演讲稿
2014/09/16 职场文书
2014年生产部工作总结
2014/12/17 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
如何制作自己的原生JavaScript路由
2021/05/05 Javascript