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


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 相关文章推荐
Mootools 1.2教程 Tooltips
Sep 15 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
Mar 28 Javascript
浅谈JavaScript函数节流
Dec 09 Javascript
JavaScript组件焦点与页内锚点间传值的方法
Feb 02 Javascript
jQuery实现带滑动条的菜单效果代码
Aug 26 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
Jan 04 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
Nov 17 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
Mar 04 Javascript
利用Node.js对文件进行重命名
Mar 12 Javascript
React diff算法的实现示例
Apr 20 Javascript
Node.js开发之套接字(socket)编程入门示例
Nov 05 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
Apr 29 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/09/11 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
PHP框架Laravel的小技巧两则
2015/02/10 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
jQuery1.6 使用方法一
2011/11/23 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
python调用shell的方法
2013/11/20 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
土木工程个人自荐信范文
2013/11/30 职场文书
入党介绍人评语
2014/05/06 职场文书
节水倡议书
2015/01/19 职场文书
敬老院义诊活动总结
2015/05/07 职场文书
python析构函数用法及注意事项
2021/06/22 Python
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby