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


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 相关文章推荐
jquery 框架使用教程 AJAX篇
Oct 11 Javascript
jQuery ctrl+Enter shift+Enter实现代码
Feb 07 Javascript
浅谈Javascript如何实现匀速运动
Dec 19 Javascript
jquery中EasyUI实现异步树
Mar 01 Javascript
jQuery插件zepto.js简单实现tab切换
Jun 16 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
Jun 12 Javascript
每日十条JavaScript经验技巧(一)
Jun 23 Javascript
详解AngularJS验证、过滤器、指令
Jan 04 Javascript
vue使用stompjs实现mqtt消息推送通知
Jun 22 Javascript
原生js实现拖拽移动与缩放效果
Aug 24 Javascript
解决新建一个vue项目过程中遇到的问题
Oct 22 Javascript
原生js实现放大镜组件
Jan 22 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
网站当前的在线人数
2006/10/09 PHP
PHP通用检测函数集合
2011/02/08 PHP
php生成圆角图片的方法
2015/04/07 PHP
PHP7内核之Reference详解
2019/03/14 PHP
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
2012/12/10 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
Python验证企业工商注册码
2015/10/25 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
.NET面试问题集
2015/12/08 面试题
美术毕业生求职信
2014/02/25 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
名人传读书笔记
2015/06/26 职场文书
企业宣传语大全
2015/07/13 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang