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


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 相关文章推荐
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
Mar 27 Javascript
Js四则运算函数代码
Jul 21 Javascript
JavaScript中:表达式和语句的区别[译]
Sep 17 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
Sep 25 Javascript
jQuery简单创建节点的方法
Sep 09 Javascript
Node.js与MySQL交互操作及其注意事项
Oct 05 Javascript
基于JSON数据格式详解
Aug 31 Javascript
使用vue的transition完成滑动过渡的示例代码
Jun 25 Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 Javascript
基于angular实现树形二级表格
Oct 16 Javascript
JavaScript流程控制(循环)
Dec 06 Javascript
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
从零学习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 清空varnish 缓存的详解(包括指定站点下的)
2013/06/20 PHP
分割GBK中文遭遇乱码的解决方法
2013/08/09 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
2019/10/17 PHP
php自动加载代码实例详解
2021/02/26 PHP
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
Javascript基础回顾之(一) 类型
2017/01/31 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
Python的语言类型(详解)
2017/06/24 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
职业生涯规划书的格式
2013/12/29 职场文书
公积金单位接收函
2014/01/11 职场文书
社会保险接收函
2014/01/12 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
高三毕业寄语
2014/04/10 职场文书
投资协议书范本
2014/04/21 职场文书
学校创先争优活动总结
2014/08/28 职场文书
财务工作犯错检讨书
2014/10/07 职场文书