网抓处理Json数据 | VBA实例教程

2018-09-26

除非注明,文章均为 战战如疯 原创,转载请保留链接:http://www.zhanzhanrufeng.com/cat3/472.html,VBA交流群273624828。

之前网抓到的数据都直接用split处理了,今天好好研究了下处理Json形式的数据,拿个案例来分享一下。

要抓的数据是http://www.okooo.com/soccer/match/680903/odds/,这个网页取数据很简单,GET就可以,主要是数据取下来的怎么处理。

Private Sub GetData1()

Dim tt As String, winhttp, t1, arr, i, v

Set winhttp = CreateObject("Microsoft.XMLHTTP")

With winhttp

.Open "GET", "http://www.okooo.com/soccer/match/680903/odds/ajax/?page=0&all=1&companytype=BaijiaBooks&type=1 ", False

.send

t1 = .responsetext

Debug.Print t1

i = 1

arr = Split(Split(Split(t1, "data_str = "")(1), "";var pageData")(0), "";")

strJSON = arr(0)

Set objSC = CreateObject("ScriptControl")

objSC.Language = "JScript"

strFunc = "function getjson(s) { return eval("(" + s + ")"); }"

objSC.AddCode strFunc

Set objJSON = objSC.CodeObject.getjson(strJSON)

For Each v In objJSON

n = n + 1

Cells(n, 1) = v.CompanyName

Cells(n, 2) = v.End.home: Cells(n, 3) = v.End.draw: Cells(n, 4) = v.End.away

Cells(n, 5) = v.Radio.home: Cells(n, 6) = v.Radio.draw: Cells(n, 7) = v.Radio.away

Cells(n, 8) = v.Kelly.home: Cells(n, 9) = v.Kelly.draw: Cells(n, 10) = v.Kelly.away

Next

End With

End Sub

上面是取所有的数据。

Private Sub GetData()

Dim tt As String, winhttp, t1, arr, i, v

"Set winhttp = CreateObject("WinHttp.WinHttpRequest.5.1")

Set winhttp = CreateObject("Microsoft.XMLHTTP")

With winhttp

".SetProxy 2, "14.18.16.67:80"

.Open "GET", "http://www.okooo.com/soccer/match/680903/odds/ajax/?page=0&companytype=BaijiaBooks&type=1", False

.send

t1 = .responsetext

With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")

.SetText t1

.PutInClipboard

End With

i = 1

arr = Split(Split(Split(t1, "data_str = "")(1), "";var pageData")(0), "";")

strJSON = arr(0)

Set objSC = CreateObject("ScriptControl")

objSC.Language = "JScript"

strFunc = "function getjson(s) { return eval("(" + s + ")"); }"

objSC.AddCode strFunc

Set objJSON = objSC.CodeObject.getjson(strJSON)

Set oRow = CallByName(objJSON, 0, VbGet)

With oRow

Cells(1, 1) = .CompanyName

Cells(1, 2) = .End.home

Cells(1, 3) = .End.draw

Cells(1, 4) = .End.away

Cells(1, 5) = .Radio.home

End With

End With

End Sub

这是只取某一行的数据。

Private Sub GetData2()

Dim tt As String, winhttp, t1, arr, i, v

"Set winhttp = CreateObject("WinHttp.WinHttpRequest.5.1")

Set winhttp = CreateObject("Microsoft.XMLHTTP")

With winhttp

".SetProxy 2, "14.18.16.67:80"

.Open "GET", "http://www.okooo.com/soccer/match/680903/odds/ajax/?page=0&companytype=BaijiaBooks&type=1", False

.send

t1 = .responsetext

i = 1

arr = Split(Split(Split(t1, "data_str = "")(1), "";var pageData")(0), "";")

strJSON = arr(0)

Debug.Print strJSON

Set objSC = CreateObject("ScriptControl"): objSC.Language = "JScript"

"strFunc = objSC.eval(" eval("" & strJSON & " ")[0].CompanyName")

Set strFunc = objSC.eval(" eval("" & strJSON & " ")[0]")

"Set strFunc = objSC.eval(" eval("" & strJSON & " ")")

MsgBox strFunc.CompanyName

End With

" Stop

End Sub

这是处理Json的另一种方式,只抓某行,抓所有还是用for each循环,不再赘述。

1

您可能也喜欢:

东方财富网数据的JSON处理方法

VBA处理JSON实例

东方财富网eastmoney数据采集

SQL之删除数据

VBA中数据透视表应用

处理XML实例-股票历史数据下载

澳客网竞彩数据下载

VBA汇总多表的表头信息及数据

无觅关联推荐[?]

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

http://www.pinlue.com/style/images/nopic.gif

vba把json转数组中_网抓处理Json数据 | VBA实例教程相关推荐

  1. java怎么把数据封进对象里_(Java)想把数组中一条一条的数据全部放入对象中去..要怎么做呢...

    展开全部 Java把数组中一条一条的数据全部放入对象中去操作如下: 1.先获取到数组中的数据dataArray数据. 2.接32313133353236313431303231363533e58685 ...

  2. numpy使用[]语法索引二维numpy数组中指定指定行之后所有数据行的数值内容(accessing rows in numpy array after specifc row)

    numpy使用[]语法索引二维numpy数组中指定指定行之后所有数据行的数值内容(accessing rows in numpy array after specifc row) 目录

  3. numpy使用[]语法索引二维numpy数组中指定指定行之前所有数据行的数值内容(accessing rows in numpy array before specifc row)

    numpy使用[]语法索引二维numpy数组中指定指定行之前所有数据行的数值内容(accessing rows in numpy array before specifc row) 目录

  4. numpy使用[]语法索引二维numpy数组中指定指定列之后所有数据列的数值内容(accessing columns in numpy array after specifc column)

    numpy使用[]语法索引二维numpy数组中指定指定列之后所有数据列的数值内容(accessing columns in numpy array after specifc column) 目录

  5. js从数组中提取自己所需的数据

    1.场景一: 人员选择相关问题 /* 场景一:从人员选择数据中,提取已选的人员信息selectedList为已选择的人员信息,只有idgroupInfo接口返回的原始数据,所有人员信息需要找出已选择的 ...

  6. android 字体颜色选择,Android中颜色选择器和改变字体颜色的实例教程

    易采站长站为您分析Android中颜色选择器和改变字体颜色的实例教程,其中改变字体颜色用到了ColorPicker颜色选择器,需要的朋友可以参考下 1.构建一张七彩图: 我们经常看到这种样子的颜色选择 ...

  7. vba把json转数组中_JavaScript 中的“黑话”

    (给前端大全加星标,提升前端技能) 作者:vv13 https://segmentfault.com/a/1190000016595592 因为球是圆的,所以不论发生什么都有可能,对这点我是深信不疑的 ...

  8. 数组转json去除首尾引号_诞生于JavaScript,json的前世今生

    诞生于JavaScript,json的前世今生 json含义 在开始之前,问个问题,什么是json? a:我猜它应该是某一门高深的技术(语重心长) b:json这个词为啥谷歌翻译?是啥新词语嘛?是不是 ...

  9. 读入的字节都写入字节数组中_使用Java将文件读入字节数组的7个示例

    读入的字节都写入字节数组中 嗨,大家好,Java程序员经常在现实世界中遇到编程问题,他们需要将文件中的数据加载到字节数组中,该文件可以是文本文件或二进制文件. 一个示例是将文件的内容转换为String ...

  10. 在json或数组中利用find方法实现根据value值获取key值的过程

    前言   在项目开发的过程中有时候会遇到这种情况:预先定义的对象数组或者json对象,后端返回了一个value值,而你需要用的是key值,后端又没有办法返给你key值,这个时候就需要自己根据value ...

最新文章

  1. python3 numpy. ndarray 与 list 互转方法
  2. 一个转角---程序猿
  3. 用Linux虚拟机手工编译安装Apache
  4. 【C++ Primer】类的多态
  5. 利用栈将html源码解析为节点树
  6. 密码学基础(三):非对称加密(RSA算法原理)
  7. 【转】ubuntu12.04完美安装QQ2012、QQMusic、Foxmail等--wine
  8. 开源软件的总拥有成本指南
  9. 数据挖掘:实用案例分析
  10. 目标检测(二):OverFeat
  11. 如何把root登陆的shell改为csh?
  12. 为什么会出现慢SQL
  13. Java生鲜电商平台-异常模块的设计与架构
  14. CSP题目:小明种苹果树
  15. anki卡片浏览器_Anki Guide by Corkine
  16. 年底了,一起来撸个视频播放器吧!
  17. IntelliJ Idea SpringBoot 数据库增删改查实例
  18. RadAsm更换主题
  19. 好用的视频消重 如何查看视频md5
  20. 父亲节简约实PPT模板——免费下载

热门文章

  1. android访问局域网电脑,如何设置电脑使安卓手机能访问局域网共享的文件
  2. java使用zxing_在Java中使用Zxing读取QRCode
  3. CodeForces 877E DFS序+线段树
  4. 七牛云存储,资源云存储平台
  5. Oracle 11gR2 RAC的两个bug
  6. linux监控程序-程序自动重启方法(转)
  7. 构造方法传参数的小心得
  8. 【C语言】08-数组
  9. 现代语音信号处理之短时傅里叶分析
  10. NameNode DataNode