找回密码
 加入
搜索
查看: 3712|回复: 8

[IE类操作] 求助1个困扰很久的简单问题,获取单1的网页数据值

  [复制链接]
发表于 2012-6-19 08:26:09 | 显示全部楼层 |阅读模式
本帖最后由 jienis 于 2012-6-19 08:29 编辑

我的目标网页的是这样的,比如说显示了我的游戏币的为1000,但这个1000是经常变化的,所以我经常要用我的程序去获取这个值!

而我用了_IEFormElementGetValue 函数搞不定,因为这个网页是ASP生成的类似静态HTML的代码,没有该函数匹配的一些值!

代码很简单,只有出现,如下,当前游戏币是730。。。。如何获取到这个730呢?有个想法是获取源码然后正则匹配,但我对正则很头疼。。写不出来,还有其他简单的方法吗?没有就麻烦帮我写下正则那个方法吧。

                                  <div id="jifen">
                                    积分:<span title="积分:10">10</span></div>
                                <div id="游戏币">
                                    游戏币:<span>730</span></div>
                            </div>

感激不尽,评分+金钱优待。。。

补充一点,如果用正则匹配的话,前面的代码也出现很多<span>XXXXXX</span>这样格式的,
所以需要匹配成,游戏币:<span>XXXXXX</span>
发表于 2012-6-19 09:00:54 | 显示全部楼层
### 友情提示:本脚本由 Au3.REHelper 于 2012/06/19 08:59 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $Str = _
                '  <div id="jifen">' & @CRLF & _
                '                                    积分:<span title="积分:10">10</span></div>' & @CRLF & _
                '                                <div id="游戏币">' & @CRLF & _
                '                                    游戏币:<span>730</span></div>' & @CRLF & _
                '                            </div>'
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str, '游戏币:<span>(\d+)</span></div>', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($Test), '其中[0]元素为: ' & $Test[0])
_ArrayDisplay($Test, UBound($Test))

评分

参与人数 1金钱 +14 收起 理由
jienis + 14

查看全部评分

发表于 2012-6-19 09:41:45 | 显示全部楼层
回复 1# jienis

2楼正解.我也来一个.

Local $a = _
'<div id="jifen">' & @CRLF & _
                                    '积分:<span title="积分:10">10</span></div>' & @CRLF & _
                                '<div id="游戏币">' & @CRLF & _
                                    '游戏币:<span>730</span></div>' & @CRLF & _
                            '</div>' & @CRLF

Local $b = StringRegExp($a,'(?i)(?<=游戏币:<span>)\d+(?=</span>)',3)
If Not @error Then MsgBox(0,0,$b[0])

评分

参与人数 1金钱 +13 收起 理由
jienis + 13

查看全部评分

 楼主| 发表于 2012-6-19 09:42:48 | 显示全部楼层
回复 2# 骗子


    感谢啊,因为获取到的数据比如是10万,是显示100,000这样的银行式方法的。。能自动把逗号去掉吗?因为经常要拿他做运算,那样应该运算不了吧···
 楼主| 发表于 2012-6-19 09:51:25 | 显示全部楼层
回复 3# fpquenya


     感谢啊,因为获取到的数据比如是10万,是显示100,000这样的银行式方法的。。能自动把逗号去掉吗?因为经常要拿他做运算,那样应该运算不了吧···
发表于 2012-6-19 09:53:00 | 显示全部楼层
回复 4# jienis

Local $a = _
'<div id="jifen">' & @CRLF & _
                                    '积分:<span title="积分:10">10</span></div>' & @CRLF & _
                                '<div id="游戏币">' & @CRLF & _
                                    '游戏币:<span>730,123,456</span></div>' & @CRLF & _
                            '</div>' & @CRLF

Local $b = StringRegExp($a,'(?i)(?<=游戏币:<span>)[^<]+(?=</span>)',3)
If Not @error Then 
        Local $c = StringRegExpReplace($b[0],',','')
        MsgBox(0,0,$c)
EndIf
发表于 2012-6-19 09:58:39 | 显示全部楼层
回复 4# jienis
Local $str = "111,222,333,444"
$str = StringReplace($str, ",", "")
MsgBox(0, "test", $str)
 楼主| 发表于 2012-6-19 10:06:43 | 显示全部楼层
回复 6# fpquenya

代码来源我的用

$a=_INetGetSource($IE)
但不知道为什么,获取到的$a我用msgbox查看了以下,所有中文都变乱码了。导致正则匹配不了,
自己手动查看原代码,就不会有乱码了,知道怎么解决吗
 楼主| 发表于 2012-6-19 10:24:32 | 显示全部楼层
回复 5# jienis


    搞定了,是网页编码的问题,$aBinaryToString(_inetgetsource("http://#######",False),4)就搞定了,谢谢你
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-20 13:38 , Processed in 0.081712 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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