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

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

VBA虽然不是专业的爬虫工具,但在处理和分析网页数据时,尤其是删除后续数据时,经常会使用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行代码创建了一个ScriptControl对象。
  • 第4行代码指定了脚本语言为JavaScript。
  • 第5行到第8行添加了两个JavaScript函数,StrToHex用于将字符串转换为UTF编码,HexToStr用于将UTF编码转换为字符串。
  • 第9行指定了测试字符串。
  • 第14行输入了转换结果。
  • 通过这种方式,可以在VBA中实现网页数据的字符转换和分析。虽然不是最优解,但对于简单的网页数据处理,仍然可以满足需求。

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

    你可能感兴趣的文章
    python读取mtcars数据集并实现以下操作_关于数据处理。。,Python交流,技术交流区,鱼C论坛 - Powered by Discuz!...
    查看>>
    Python 中多线程与多处理之间的区别
    查看>>
    Python 中如何使用 lambda 函数
    查看>>
    Python 中如何创建多行字符串?
    查看>>
    Python 中如何处理异常?
    查看>>
    Python 中如何实现列表的切片?
    查看>>
    Python 中如何实现字典的排序?
    查看>>
    Python 中常用的数据类型及相关操作详解
    查看>>
    Python 中的离线语音转文本
    查看>>
    Python 中的线程
    查看>>
    Python 中的继承机制是什么样的?
    查看>>
    Python 中的装饰器是什么?
    查看>>
    Python 中的装饰器是如何工作的,有哪些实际应用场景?
    查看>>
    python读excel
    查看>>
    Python 中读取 CSV 文件-ChatGPT4o作答
    查看>>
    python请求html_使用Python请求获取HTML?
    查看>>
    Python 之匿名函数和偏函数
    查看>>
    python 之栈的实现
    查看>>
    python语音播放
    查看>>
    python语言:装饰器原理
    查看>>