ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 第一辑、网页:点击标签,翻页

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-14 04:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:网页交互
cumulonimbus 发表于 2012-9-13 20:14
但是,网页页面的源码里面,有一个iframe行内框架,这个框架的src(地址)为:“/ShareSubjectList/trade ...

Sub 更一般的办法()
  With CreateObject("InternetExplorer.Application")
      .Visible = True
      .navigate "http://www.tjcae.com/ShareSubjectList/tradePublicInfo.jsp"
        Do Until .readyState = 4
            DoEvents
        Loop
       Set r = .document.All.tags("input")
       For i = 0 To r.Length - 1
       Cells(i + 1, 1) = i
       Cells(i + 1, 2) = r(i).innerText
       Next i
   End With
End Sub

TA的精华主题

TA的得分主题

发表于 2012-9-14 09:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看了你那个“关闭讨厌家伙”的程序,非常困惑
        .document.All.tags("div")(4).Click '关闭“右边”的讨厌的家伙
        .document.All.tags("div")(27).Click '关闭“中间”的讨厌的家伙
        .document.All.tags("div")(37).Click '关闭“左边”的讨厌的家伙
DIV标签有非常多,你是如何迅速判断出它的关闭标签是在4,27,37,我昨天找了一晚上也没有找到?谢谢你的热心解答。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-14 09:36 | 显示全部楼层
cumulonimbus 发表于 2012-9-14 09:25
看了你那个“关闭讨厌家伙”的程序,非常困惑
        .document.All.tags("div")(4).Click '关闭“右边” ...

你可以看看:
http://club.excelhome.net/forum. ... 808&pid=6304149

TA的精华主题

TA的得分主题

发表于 2012-9-14 20:04 | 显示全部楼层
蓝天630902 发表于 2012-5-31 19:46
再比如说,http://club.excelhome.net/forum-2-1.html
如何点击“选择主题分类”选择框中的“求助、分享、 ...

奇怪,你这个代码不作用呀

TA的精华主题

TA的得分主题

发表于 2012-9-14 23:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
蓝天630902 发表于 2012-5-30 14:08
http://www.ddx.name/,在源代码中看不到“股票查询”
怎么办?我们知道,输入框可以是用input标签,
所以 ...

   .Document.All.tags("INPUT")(5).Value = "000825"           '输入“、、、”
  .Document.All.tags("INPUT")(6).Click                                 ‘点击“、、、”

TA的精华主题

TA的得分主题

发表于 2012-9-20 16:06 | 显示全部楼层
蓝天630902 发表于 2012-5-30 10:44
一个一个地找,岂不小看了vba?我们有更一般的办法:

Sub 更一般的办法()

请问蓝天老师:
我的网页数据总共有200多行,从网页源文件里看到也是,但是我只能用All.tags("div")的方法load出前6行的数据,用这个方法会有什么限制吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-20 16:20 | 显示全部楼层
yyw9230 发表于 2012-9-20 16:06
请问蓝天老师:
我的网页数据总共有200多行,从网页源文件里看到也是,但是我只能用All.tags("div")的方 ...

把源码发过来看看

TA的精华主题

TA的得分主题

发表于 2012-9-20 18:35 | 显示全部楼层
蓝天630902 发表于 2012-9-20 16:20
把源码发过来看看

哎,抱歉,公司的数据,不允许外传的,我也很无奈。。

TA的精华主题

TA的得分主题

发表于 2012-9-24 10:41 | 显示全部楼层
蓝天630902 发表于 2012-9-20 16:20
把源码发过来看看

蓝天老师:
问题已经解决,虽然用了Do Until ie.readyState = READYSTATE_COMPLETE
        DoEvents
Loop
但是实际网页并没有完全加载完,现在在load网页后加了1分钟的延时,已经可以load出正确的数据了
另外出现了一个新的问题:
我Load出来的数据有26行,但是我想Load出来的数据是200行,我在网页上尝试了下,网页的HTML中的元素是随着我的网页滚动而跟着发生变化的
我的想法是:模拟网页的scroll,然后再重新Load一次数据
不知道我这想法是否可行?可行的话,怎么来实现模拟scroll,搜了下论坛,没找到类似的介绍

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-24 11:02 | 显示全部楼层
yyw9230 发表于 2012-9-24 10:41
蓝天老师:
问题已经解决,虽然用了Do Until ie.readyState = READYSTATE_COMPLETE
        DoEvents

你看看,你的数据在什么"标签"里面,并且是“分布”在什么父标签里面,
现在就可以这样子做:
Set r = .document.All.tags("父标签")(n).All.tags("标签")
for i=0 to r.length -1
……………………
next i
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 23:55 , Processed in 0.035142 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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