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


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创建一个选择文件的对话框代码
Jun 16 Javascript
JS实现切换标签页效果实例代码
Nov 01 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
Jan 20 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
Mar 21 Javascript
基于Jquery easyui 选中特定的tab
Nov 17 Javascript
jQuery实现每隔几条元素增加1条线的方法
Jun 27 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
Sep 20 Javascript
bootstrap配合Masonry插件实现瀑布式布局
Jan 18 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
Apr 07 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
element-ui tooltip修改背景颜色和箭头颜色的实现
Dec 16 Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 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/25 PHP
php 远程关机操作的代码
2008/12/05 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
js DOM的学习笔记
2011/12/22 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
vue2.0 axios前后端数据处理实例代码
2017/06/30 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
快速入门python学习笔记
2017/12/06 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
python实现经纬度采样的示例代码
2020/12/10 Python
Cocopanda波兰:购买化妆品、护肤品、护发和香水
2020/05/25 全球购物
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
绩效工资分配方案
2014/01/18 职场文书
淘宝中秋节活动方案
2014/01/31 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
思想品德评语大全
2014/12/31 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
入党函调证明材料
2015/06/19 职场文书
推广普通话的宣传语
2015/07/13 职场文书