【已解决】读取网页中javascript脚本生成的动态数据【PS:不用IE.AU3 UDF】
本帖最后由 huangke 于 2013-1-22 15:39 编辑可能我有强迫症,不想用IE.AU3 UDF,如何读取这个网址(http://www.timedate.cn/worldclock/ti.asp)的内容“2013年1月22日 星期二 14:19:03”
如下的代码中没有JS生成的‘2013年1月22日 星期二 14:19:03’之类的文本。。。where is it?{:face (293):}
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET","http://www.timedate.cn/worldclock/ti.asp")
$oHTTP.Send()
$Source = $oHTTP.responseBody
$Source = BinaryToString($Source, 1)
MsgBox(0, '结果:', $Source)
Exit
或者用InetRead
$http = 'http://www.timedate.cn/worldclock/ti.asp'
$sData = InetRead($http)
$Source = BinaryToString($sData, 1)
MsgBox(0, 0, $Source)
;--------------------------------------------------------------
今天一连问了两个问题,都被大家热心解决了。。。。鸡冻中。。。。{:1_595:}
Local $http = 'http://www.timedate.cn/worldclock/ti.asp'
Local $sData = InetRead($http)
Local $Source = BinaryToString($sData, 1)
Local $aSR = StringRegExp($Source, 'n\w+\=(\d+)', 3)
If @error Or UBound($aSR) < 7 Then Exit
Local $Array = ['日', '一', '二', '三', '四', '五', '六', '日']
MsgBox(0, '', StringFormat('%d年%d月%d日 星期%s %02d:%02d:%02d', $aSR, $aSR, $aSR, $Array[$aSR], $aSR, $aSR, $aSR))
这个应该是获取的系统时间吧~如果只是为了获取时间,那么直接从系统中获取好了~ 回复 1# huangke
虽然没有试过你给的,但不管那种,肯定能得到生成的html源码,然后你正则一下,就可以取出‘年月日’等等数据出来了。 本帖最后由 haijie1223 于 2013-1-22 15:02 编辑
回复 3# happytc
我看了楼主提供的网页,html源码中是一个js脚本函数获取的时间。不是静态显示的一个字符串。所以没法用正则获取的方法。 回复 2# haijie1223
不是系统时间哦,看网址就可以猜了,是一个时间网,不可能取系统时间来忽悠你吧?
自己改一下系统时间再试就知道了 回复 5# annybaby
确实是~ Local $http = 'http://www.timedate.cn/worldclock/ti.asp'
Local $sData = InetRead($http)
Local $Source = BinaryToString($sData, 1)
Local $aSR = StringRegExp($Source, 'n\w+\=(\d+)', 3)
If @error Or UBound($aSR) < 7 Then Exit
Local $Array = ['日', '一', '二', '三', '四', '五', '六', '日']
MsgBox(0, '', StringFormat('%d年%d月%d日 星期%s %02d:%02d:%02d', $aSR, $aSR, $aSR, $Array[$aSR], $aSR, $aSR, $aSR))
回复 1# huangke
这个强迫症没必要有!
可能是因为你想当然地觉得,可能有些人没有安装IE,但问题是:你下面用的两个函数,没有IE组件一样用不了~~
你下面两种方法都是可以的
因为它是通过函数生成,然后用字符串拼接再通过获取clock对象,用innerHTML来赋值的,直接搜索上面的字符串当然没有了~~ 回复 7# afan
A大一出手就知有没有!
短小精悍~PF!{:face (361):} 回复 4# haijie1223
怎么可能呢?就是动态的,也会生成当时刻的静态网页源代码。他给的code都能获得,把其中的年月日等数据正则提出来就可以了。所以你的‘所以’不成立呀!不信你试 回复haijie1223
怎么可能呢?就是动态的,也会生成当时刻的静态网页源代码。他给的code都能获得 ...
happytc 发表于 2013-1-22 15:18 http://www.autoitx.com/images/common/back.gif
天,我这里怎么显示只有发哥一人回了帖子,等回了上帖一看,原来那么多回帖了,并且A版已经给出正则了 回复 11# happytc
发帖后看一下你自己所在的楼层和上一层,然后,你懂的~~
话说,论坛MS该升级下了
afan 发表于 2013-1-22 15:07 http://www.autoitx.com/images/common/back.gif
原来一直都在。。。。只是木有正则出来。。。{:face (198):},为什么在源码里面没有看到呢? 回复 13# huangke
其实用IE也不是很麻烦
$oIE=ObjCreate('internetExplorer.application')
$oIE.navigate('http://www.timedate.cn/worldclock/ti.asp')
Sleep(1000)
MsgBox(0,'当前时间',$oIE.document.getElementById('clock').innerHTML) 回复huangke
其实用IE也不是很麻烦
annybaby 发表于 2013-1-22 15:36 http://www.autoitx.com/images/common/back.gif
嗯嗯,我犯2了。。。哈哈
页:
[1]
2