博客
关于我
VBA网抓字符转换
阅读量:299 次
发布时间:2019-03-03

本文共 779 字,大约阅读时间需要 2 分钟。

VBA虽然不是专业爬虫工具,但是Excel删除后续数据处理与分析,所以对于不复杂的网页数据抓取也经常在VBA来实现。

有些时候,在网页中看到的内容,使用浏览器的“审查元素”功能也可以看到的内容,如下图。

但是用代码抓取回来就只有如下的字符串,面目全非完全无法认读。

北京天安门

怎么回事呢,这是由于网页中使用了字符的UTF编码,在浏览器中加载页面的时候可以自动转换为中文字符,HTML源码如下。

            

北京天安门

既然已经抓取到了UTF编码的字符,在VBA是否可以转换为中文呢?VBA中有StrConv可以实现Unicode转换,通常网页中会使用十六进制的表示形式,所以在VBA中还需要借助工作表函数实现进制转换,可以实现但是有些繁琐。

处理HTML肯定是JavaScript最方便了,在VBA中调用JavaScript实现这个转换就可以了。

Sub JSDemo()    Dim strCN, strHex, strNew    With CreateObject("MSScriptControl.ScriptControl")        .Language = "javascript"        strJSCode = "function StrToHex(r){for(var t='',n=0;n

【代码解析】

第3行代码创建ScriptContrl对象。
第4行代码指定语言为JavaScript。
第5行到第8行代码添加两个JavaScript的函数,其中StrToHex实现字符串转换UTF编码,HexToStr实现UTF转换为字符串。JavaScript代码就不再讲解了。
第9行指定测试字符串。
第14行输入转换结果,如下图所示。

转载地址:http://pdjl.baihongyu.com/

你可能感兴趣的文章
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>
MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
查看>>
MySQL中的GROUP_CONCAT()函数详解与实战应用
查看>>
MySQL中的IO问题分析与优化
查看>>
MySQL中的ON DUPLICATE KEY UPDATE详解与应用
查看>>
mysql中的rbs,SharePoint RBS:即使启用了RBS,内容数据库也在不断增长
查看>>
mysql中的undo log、redo log 、binlog大致概要
查看>>
Mysql中的using
查看>>
MySQL中的关键字深入比较:UNION vs UNION ALL
查看>>
mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
查看>>
mysql中的字段如何选择合适的数据类型呢?
查看>>
MySQL中的字符集陷阱:为何避免使用UTF-8
查看>>