ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 网抓 上海金属价格行情 拆线图

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-9-25 19:01 | 显示全部楼层 |阅读模式

不少单位采购跟单下单前经常要查询相关金属市场价格行情,了解价格趋势,很早以前就弄了个小工具,每天抓取下市场价格行情(每中午12点前网站更新数据),并留存历史记录,同步生成折线图,以方便跟单使用:

上海金属价格行情.jpg

详见附件: 上海金属价格行情(2020).rar (117.72 KB, 下载次数: 81)


评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-8 09:27 | 显示全部楼层
一个 南海灵通网 的金属报价,
但发现一个问题,同一网址:https://www.lvdingjia.com/price/nanhai/
在 IE 中打开,和在 Google Chrome 中打开居然是不同的,
可能是 IE版本或FLASH插件的原因,无法显示及提取相关表格数据
IE 中的页面:
IE.png
Google Chrome 中的页面:
GOOOOGER.png

请问,如何抓取  Google Chrome  页面中,南海灵通最近30天价格
或 90 天的价格 数据

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-10 12:37 | 显示全部楼层
找了个显示网页元素的工具,
CreateObject("internetexplorer.application")
都是基于 IE 的,也查看不到 数据表格属性,
微软的VBA只能操作自家的IE浏览器!?
如何抓取非 IE 浏览器如 火狐、Google Chrome、360、傲游、QQ等之类的网页数据?
是否要通过VBA稠用其他语言方能实现?

哪个网抓的大神能伸下授手或释疑一下,谢谢


TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-10 13:48 | 显示全部楼层
可以了,虽然没显示,网页数据还是在的,
强制循环所有"table" 虽然格式不一样:

  1. Sub CmBClick()
  2. Dim ie1 As Object, dmt As Object, r As Object, lr As Long, i As Long, j As Long, t As Long
  3. Dim Html As Object, XmlHttp As Object, url$, tb, n%
  4. Set Html = CreateObject("htmlfile")
  5. Set XmlHttp = CreateObject("MSXML2.XmlHttp")
  6. On Error Resume Next
  7. Application.DisplayAlerts = False
  8. Application.ScreenUpdating = False
  9. On Error Resume Next
  10. url = "https://www.lvdingjia.com/price/nanhai/"
  11. If url = "" Then Exit Sub
  12. With XmlHttp
  13.      .Open "GET", url, False
  14.      .Send
  15.      Html.body.innerhtml = .ResponseText
  16. End With
  17. With ActiveSheet
  18. [a1].CurrentRegion.Clear
  19. Cells.NumberFormat = "@"
  20. For t = 0 To 9
  21. lr = .[A6536].End(xlUp).Row + 1
  22. Set tb = Html.all.tags("table")(t).Rows
  23. For i = 0 To tb.Length - 1
  24.    For j = 0 To tb(i).Cells.Length - 1
  25.         Cells(i + lr + 1, j + 1) = tb(i).Cells(j).innerText
  26.    Next
  27. Next
  28. Next
  29. Application.ScreenUpdating = True
  30. Application.DisplayAlerts = True = False
  31. .[a1].CurrentRegion.Columns.AutoFit
  32. End With
  33. Set ie1 = Nothing
  34. Set dmt = Nothing
  35. Set r = Nothing
  36. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2022-12-21 13:08 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-20 04:39 , Processed in 0.037624 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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