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


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 相关文章推荐
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
Jan 24 Javascript
jquery 实现上下滚动效果示例代码
Aug 09 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
Feb 05 Javascript
JS加载器如何动态加载外部js文件
May 26 Javascript
JS图片定时翻滚效果实现方法
Jun 21 Javascript
AngularJS入门教程之数据绑定用法示例
Nov 01 Javascript
关于foreach循环中遇到的问题小结
May 08 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
详解node如何让一个端口同时支持https与http
Jul 04 Javascript
Vue.js组件间通信方式总结【推荐】
Nov 23 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
vue实现文字加密功能
Sep 27 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的ob_start();控制您的浏览器cache!
2007/02/14 PHP
discuz7 phpMysql操作类
2009/06/21 PHP
php简单检测404页面的方法示例
2019/08/23 PHP
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
AngularJS的$location使用方法详解
2017/10/19 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
Python中optparser库用法实例详解
2018/01/26 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
2020/03/30 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
python对execl 处理操作代码
2020/06/22 Python
python三引号如何输入
2020/07/06 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
《凡卡》教学反思
2014/04/09 职场文书
关于诚信的活动方案
2014/08/18 职场文书
反腐倡廉观后感
2015/06/08 职场文书
中学音乐课教学反思
2016/02/18 职场文书