ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 求分析! 一个网页跳转之后网址不变 无法获取新网页数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-2-10 14:45 | 显示全部楼层 |阅读模式
我想做的事情是
1. 打开http://www.hkexnews.hk/listedco/listconews/advancedsearch/search_active_main.aspx


2. 在“股份代號”那里填股票代码为”00405“


3. 按”搜寻“


4. 下载新弹出来的网页的信息如”
發放時間代號股份名稱文件
05/02/2014
11:00
00405
越秀房產信託基金


Sub


已经写到第3步,第四步尝试了很久都无法完成 因为新的网页跟就的网页url是一样的,所以不知道怎样才能拿到I新网页的控制权然后下载里面的信息,求助!!
先谢谢大家了!

SpecialStocksInfo()
Dim i As Integer, SpecialStockLength As Double, j As Integer
Dim r As Variant

For i = 2 To 2
  On Error Resume Next
  With CreateObject("internetexplorer.application")
    .Visible = True
    .navigate "http://www.hkexnews.hk/listedco/listconews/advancedsearch/search_active_main.aspx"
    Do Until .readystate = 4
      DoEvents
    Loop

    .Document.All.tags("INPUT")(5).Value = ”00405“
    .Document.forms(0).submit
    Do Until .readystate = 4
      DoEvents
    Loop
   ‘如何抓取新网页的信息呢???
  End With
Next i

End Sub

TA的精华主题

TA的得分主题

发表于 2014-2-10 14:52 | 显示全部楼层
本帖最后由 wudixin96 于 2014-2-10 14:55 编辑

建议用XMLHTTP方式

不过网页没的跳转,从原地址是可以获取的

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-10 14:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wudixin96 发表于 2014-2-10 14:52
建议用XMLHTTP方式

能再多给点提示么... 网页完全不会呀

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-10 15:00 | 显示全部楼层
wudixin96 发表于 2014-2-10 14:52
建议用XMLHTTP方式

不过网页没的跳转,从原地址是可以获取的

你有空的时候能帮我看看么 不知道怎么获取呀 是从提交表单那句源代码吗 <a href="javascript: if (preprocessMainForm() == true )  document.forms[0].submit();">  会得到什么呀???

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-10 15:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
大神们一定是新年第一天上班有上班气了 表沉

TA的精华主题

TA的得分主题

发表于 2014-2-10 15:40 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-10 15:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wudixin96 发表于 2014-2-10 15:40
是嫌麻烦不想写

不会的 一定是上班气的原因 我网页原来一点不会 是论坛大神手把手教会的呀

TA的精华主题

TA的得分主题

发表于 2014-2-10 16:32 | 显示全部楼层
正如2楼侠圣所说,网页跳转之后,网址虽然没变,但内容已经变了,直接提取就可以

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-10 16:48 | 显示全部楼层
ccwan 发表于 2014-2-10 16:32
正如2楼侠圣所说,网页跳转之后,网址虽然没变,但内容已经变了,直接提取就可以

我尝试了直接提取内容,但是拿到的是原来没有提交表单之前那个网页的内容。

还尝试过加入一句 msg ”XXXX“ 然后点击确定之后,就能提取到新的网页的内容,但是如果我要查询的股票代码很多的话,这个效率很低呀

TA的精华主题

TA的得分主题

发表于 2014-2-10 16:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
所以人家建议你用XMLHTTP方式啊
根据你的方法写的,你看下,肯定可以取到跳转后的内容。建议你按F8键一步一步运行看
  1. Sub SpecialStocksInfo()
  2.     Dim i As Integer, SpecialStockLength As Double, j As Integer
  3.     Dim r As Variant
  4.     Cells.ClearContents
  5.     For p = 2 To 2
  6.         On Error Resume Next
  7.         With CreateObject("internetexplorer.application")
  8.             .Visible = True
  9.             .navigate "http://www.hkexnews.hk/listedco/listconews/advancedsearch/search_active_main.aspx"
  10.             Do Until .readystate = 4
  11.                 DoEvents
  12.             Loop
  13.             .Document.all.tags("INPUT")(5).Value = "00405"
  14.             .Document.all.tags("INPUT")(12).Click
  15.             .Document.all.tags("select")(12).Value = "Year"
  16.             .Document.forms(0).submit
  17.             Do Until .readystate = 4
  18.                 DoEvents
  19.             Loop
  20.             k = 0
  21.             Set r = .Document.all.tags("td")
  22.             ReDim Arr(1 To r.Length / 4, 1 To 4)
  23.             For i = 85 To r.Length - 1
  24.                 Arr((i - 85) \ 4 + 1, k Mod 4 + 1) = r(i).innerText
  25.                 k = k + 1
  26.             Next i
  27.             [a1].Resize(UBound(Arr), 4) = Arr
  28.         End With
  29.     Next p
  30. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-15 22:04 , Processed in 0.033025 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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