ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 第二辑、网页:篡改、保留和屏蔽某些内容

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-9-17 19:28 | 显示全部楼层
本帖已被收录到知识树中,索引项:网页交互
蓝天630902 发表于 2012-9-17 19:08
拉一下IE的滚动栏,它就重新刷新

老师,要怎么样才能查到“随机选1注”的标签与序号呢?
        For i = 0 To .document.All.Length - 1
            If .document.All(i).innerText = "随机选1注" Then .document.All(i).innerText = .document.All(i).tagname:.document.All(i).innerText = i
        Next i
奇怪,我用这个找不到。老师帮我看看哈,谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-17 19:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
cumulonimbus 发表于 2012-9-17 19:28
老师,要怎么样才能查到“随机选1注”的标签与序号呢?
        For i = 0 To .document.All.Length - 1 ...

一般来说,文字可见但不能复制,就是标签的value属性或者img标签,而不是innerText 属性
所以应该这样:
Sub 比如说吧()
    On Error Resume Next
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate "http://baidu.lehecai.com/lottery/qlc/"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        For i = 0 To .document.All.Length - 1
            .document.All(i).Value = .document.All(i).tagname
        Next i
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2012-9-17 20:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
蓝天630902 发表于 2012-9-17 19:59
一般来说,文字可见但不能复制,就是标签的value属性或者img标签,而不是innerText 属性
所以应该这样 ...

老师,运行了程序后,我在“随机选1注”上没有看到任何变化,在其它INPUT函数上看到了变化。如何解决?谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-17 20:19 | 显示全部楼层
cumulonimbus 发表于 2012-9-17 20:13
老师,运行了程序后,我在“随机选1注”上没有看到任何变化,在其它INPUT函数上看到了变化。如何解决?谢 ...

26楼的代码,可以看到吧:
http://club.excelhome.net/forum. ... 808&pid=6313618

TA的精华主题

TA的得分主题

发表于 2012-9-17 20:38 | 显示全部楼层
本帖最后由 cumulonimbus 于 2012-9-17 20:45 编辑
蓝天630902 发表于 2012-9-17 20:19
26楼的代码,可以看到吧:
http://club.excelhome.net/forum.php?mod=redirect&goto=findpost&ptid=9178 ...


是可以看到,但是我想找
       Set r = .document.All.tags("a")
       For i = 0 To r.Length - 1            
        Cells(i + 1, 1) = i
       Next i
这个 i ,想对这个“随机选1注”进行操作时,却出现了一大堆,不知哪个是哪个,有点晕哈
我找到标签为A,但没有INNERTEXT的有这么多
1
18
27
41
44
48
50
98
115
119
123
127
131
135
139
143
147
151
154
177
178
179
180
181
186

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-17 20:49 | 显示全部楼层
本帖最后由 蓝天630902 于 2012-9-17 20:57 编辑

直接操作id:

                    <span id="play_tab_standard" class="play_tab bzxh_on"><a href="javascript://">标准选号</a><s></s></span>
                    <span class="sjxz">或者试试手气 <a href="javascript://" id="feel_luck" class="random_btn"></a></span>
                    <span class="gjwf">高级玩法:

Sub 比如说吧()
    On Error Resume Next
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate "http://baidu.lehecai.com/lottery/qlc/"
        Do Until .ReadyState = 4
            DoEvents
        Loop
            .document.getElementbyid("feel_luck").Click
    End With
End Sub

或者,操作className

Sub 比如说吧()
    On Error Resume Next
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate "http://baidu.lehecai.com/lottery/qlc/"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        For i = 0 To .document.All.tags("a").Length - 1
            .document.All.tags("a")(i).innerText = .document.All.tags("a")(i).tagname
            If .document.All.tags("a")(i).className = "random_btn" Then .document.All.tags("a")(i).Click
        Next i
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2012-9-17 21:57 | 显示全部楼层
蓝天630902 发表于 2012-9-17 20:49
直接操作id:

                    标准选号

谢谢老师,但是在操作之前总得找出它的ID或者classname吧
可是如果直接从源代码中寻找非常困难。若是让我从源代码中找出“随机选1注”的ID或是classname,说实话,肯定是找不到的。

TA的精华主题

TA的得分主题

发表于 2012-9-17 23:12 | 显示全部楼层
本帖最后由 cumulonimbus 于 2012-9-17 23:13 编辑
蓝天630902 发表于 2012-9-17 20:49
直接操作id:

                    标准选号

假设我上传了20组号码,如果我要点击第三组号码,要如何做到?如果要点击倒数第4组号码,又要如何做呢?谢谢


未命名.JPG

TA的精华主题

TA的得分主题

发表于 2012-9-18 00:03 | 显示全部楼层
本帖最后由 kangatang 于 2012-9-20 09:18 编辑

不如用xmlhttp直接把网页元素采集了,做成一个HTML文件。那样可以随心所欲地想玩积木一样,达到自己的效果。
看我已经做的一个例子

EH局部网页.rar (2.35 KB, 下载次数: 81)

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-18 05:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
cumulonimbus 发表于 2012-9-17 21:57
谢谢老师,但是在操作之前总得找出它的ID或者classname吧
可是如果直接从源代码中寻找非常困难。若是让我 ...

'在“随机选1注”上右击鼠标,它的地址为javascript://
'所以我们可以用地址“javascript://”来查
'
'
Sub 比如说吧1()
    On Error Resume Next
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate "http://baidu.lehecai.com/lottery/qlc/"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        For i = .document.All.Length - 1 To 0 Step -1
            a = .document.All(i).href
            If a = "javascript://" Then
                .document.All(i).innerText = .document.All(i).tagname & i
                t1 = Timer
                Do Until Timer > t1 + 0.1
                    DoEvents
                Loop
                a = ""
            End If
        Next i
    End With
End Sub

'
'在“随机选1注”上可以看到,A348
'“A”是标签名,348是标签号
'所以我们可以直接查A348的父节点的源码innerHTML
'为什么是父节点的源码,而不是自身的源码呢?我估计应该去问问W3C
'

Sub 比如说吧2()
    On Error Resume Next
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate "http://baidu.lehecai.com/lottery/qlc/"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        Debug.Print .document.All(348).ParentNode.innerHTML
    End With
End Sub
'
'
'也已经出来了:
'或者试试手气 <A id=feel_luck class=random_btn href="javascript://" jQuery164048988451574794805="142"></A>
'现在就可以用26楼 http://club.excelhome.net/forum. ... 808&pid=6314035 的方法了
'

Sub 比如说吧3()
    On Error Resume Next
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate "http://baidu.lehecai.com/lottery/qlc/"
        Do Until .ReadyState = 4
            DoEvents
        Loop
            .document.getElementbyid("feel_luck").Click
    End With
End Sub

'或者,操作className :

Sub 比如说吧4()
    On Error Resume Next
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate "http://baidu.lehecai.com/lottery/qlc/"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        For i = 0 To .document.All.tags("a").Length - 1
            .document.All.tags("a")(i).innerText = .document.All.tags("a")(i).tagname
            If .document.All.tags("a")(i).className = "random_btn" Then .document.All.tags("a")(i).Click
        Next i
    End With
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-20 11:28 , Processed in 0.040020 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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