ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: mail249120

[求助] VBA抓取网页表格数据

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-24 07:38 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
duquancai 发表于 2019-1-23 21:01
是这样吗????

是的,要的效果就是这样,但是需要ExcelVBA抓取,大神可以吗

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-24 07:39 来自手机 | 显示全部楼层
chentonny 发表于 2019-1-23 19:12
这是JS异步加载的数据。楼主恐怕不是只想取某一日的数据吧?

每天都会有更新的,基本每天中午左右就会是当天更新的数据了

TA的精华主题

TA的得分主题

发表于 2019-1-24 15:29 | 显示全部楼层
mail249120 发表于 2019-1-24 07:39
每天都会有更新的,基本每天中午左右就会是当天更新的数据了

这种玩意在vba里头比较不好处理,在PYTHON中相对简单。上面的PYTHON代码可以获取、解析数据,但没有输出到EXCEL。想输出到EXCEL还得加几行代码。建议你要取数据,还是在PYTHON里搞吧。

TA的精华主题

TA的得分主题

发表于 2019-1-24 18:59 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
mail249120 发表于 2019-1-24 07:38
是的,要的效果就是这样,但是需要ExcelVBA抓取,大神可以吗

VBA我也会一点,有空再给您服务!

TA的精华主题

TA的得分主题

发表于 2019-1-24 20:57 | 显示全部楼层
本帖最后由 duquancai 于 2019-1-24 23:01 编辑
mail249120 发表于 2019-1-24 07:38
是的,要的效果就是这样,但是需要ExcelVBA抓取,大神可以吗

这是ExcelVBA代码》》》》》》》》》》》》》》》》》》》》》》》》
  1. Sub main()
  2.     my_name$ = "username=pnrsandy" '用户名
  3.     my_pwd$ = "&password=PNR123456" '密码
  4.     post_data$ = "pageNo=1&pageSize=20&cityCode=119900&productSortName=%E7%82%89%E6%96%99"
  5.     Call login_get_json(my_name, my_pwd, post_data)
  6.     MsgBox "ok!"
  7. End Sub
  8. Sub login_get_json(ByVal my_name$, ByVal my_pwd$, ByVal post_data$)
  9.     Dim xmlhttp As Object
  10.     Set xmlhttp = CreateObject("msxml2.xmlhttp")
  11.     xmlhttp.Open "POST", "https://vip.ccmn.cn/a/login", False
  12.     xmlhttp.send my_name & my_pwd
  13.     xmlhttp.Open "POST", "https://www.ccmn.cn/historyprice/getCorpQuotationsList", False
  14.     xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  15.     xmlhttp.send post_data
  16.     Call parse_json(xmlhttp.responseText)
  17. End Sub
  18. Sub parse_json(ByVal json_sr$)
  19.     Dim js As Object, j As String
  20.     Sheets(1).Select: Cells.Clear
  21.     Set js = CreateObject("MSScriptControl.ScriptControl")
  22.     js.Language = "JavaScript": js.AddObject "g", Range("a1")
  23.     j = "k=0;a=" & json_sr & "['body']['marketPriceList'];"
  24.     j = j & "for(i=0;i<a.length;i++,k++){if(k==0){r=0;for(o in a[i]){++r;g(1,r)=o;g(2,r)=a[i][o]}"
  25.     j = j & "}else{r=0;for(o in a[i]){++r;g(i+2,r)=a[i][o]}}};": js.eval (j)
  26. End Sub
复制代码

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-1-24 22:52 来自手机 | 显示全部楼层
duquancai 发表于 2019-1-24 20:57
这是ExcelVBA代码》》》》》》》》》》》》》》》》》》》》》》》》

板正。            

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-25 12:26 | 显示全部楼层
duquancai 发表于 2019-1-24 20:57
这是ExcelVBA代码》》》》》》》》》》》》》》》》》》》》》》》》

大神,到这一句有错误,看图
QQ拼音截图未命名1.png
QQ拼音截图未命名.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-25 12:38 | 显示全部楼层
Kaohsing 发表于 2019-1-23 21:24
只能是自己积累数据,或者付费获取数据.

请问,那像这个链接好抓吗?https://www.ccmn.cn/bxg/201/
这页面每天会出现新的链接,比如今天会有1-24的数据,然后链接点进去会有表格数据
所以首先是抓到链接地址,然后再到链接地址网页中抓取所需数据

TA的精华主题

TA的得分主题

发表于 2019-1-25 14:22 | 显示全部楼层
mail249120 发表于 2019-1-25 12:26
大神,到这一句有错误,看图

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

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-1-25 14:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
mail249120 发表于 2019-1-25 12:38
请问,那像这个链接好抓吗?https://www.ccmn.cn/bxg/201/
这页面每天会出现新的链接,比如今天会有1-24 ...

是的。 每日从https://www.ccmn.cn/bxg/201/从这个页面获取连接,在请求连接得到数据。时间长了你就有历史数据啦.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-29 20:32 , Processed in 0.039617 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表