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


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 相关文章推荐
ExtJs使用IFrame的实现代码
Mar 24 Javascript
基于Jquery的文字自动截取(提供源代码)
Aug 09 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
Jul 23 Javascript
jQuery提示插件alertify使用指南
Apr 21 Javascript
浅谈Javascript中的Label语句
Dec 14 Javascript
Angularjs中使用layDate日期控件示例
Jan 11 Javascript
Bootstrap表单使用方法详解
Feb 17 Javascript
在Swiper内如何制作CSS3动画效果示例代码
Dec 07 Javascript
解决VUE中document.body.scrollTop为0的问题
Sep 15 Javascript
基于vue.js实现购物车
Jan 15 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
May 19 Javascript
jQuery实现本地存储
Dec 22 jQuery
从零学习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框架自动加载类文件原理详解
2017/06/06 PHP
php实现session共享的实例方法
2019/09/19 PHP
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
总结Node.js中的一些错误类型
2016/08/15 Javascript
解析jQueryEasyUI的使用
2016/11/22 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
Angular2实现组件交互的方法分析
2017/12/19 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
python join方法使用详解
2019/07/30 Python
python实现人机猜拳小游戏
2020/02/03 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
法国在线药房:1001Pharmacies
2021/03/07 全球购物
生物技术研究生自荐信
2013/11/12 职场文书
青年创业培训欢迎词
2014/01/08 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
实习老师离校感言
2014/02/03 职场文书
新闻发布会主持词
2014/03/28 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
圆明园观后感
2015/06/03 职场文书
PyQt5爬取12306车票信息程序的实现
2021/05/14 Python
java设计模式--三种工厂模式详解
2021/07/21 Java/Android