找回密码
 加入
搜索
查看: 5616|回复: 24

请教个简单的从IE网页读取指定区域回显gui的问题,在不打开浏览器的情况下

 火... [复制链接]
发表于 2010-1-14 15:20:44 | 显示全部楼层 |阅读模式
也有点难度,我每次获取都只是获取到脚本中的           

   读取中



郁闷


地址 http://open.baidu.com/static/time/beijingtime.html

想读取图片中的区域,即 从  <div id="bjt" style="margin-top:8px"> 这一部分读取

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
pusofalse + 10 感谢主动修改帖子分类为[已解决]。

查看全部评分

发表于 2010-1-14 16:03:11 | 显示全部楼层
时钟是flash来的
clock.js文件里有地址 http://www.baidu.com/swf/aladdin/clock/clock.swf
发表于 2010-1-14 19:01:13 | 显示全部楼层
我用的不是百度的北京时间。。。
发表于 2010-1-14 20:23:48 | 显示全部楼层
直接在GUI上显示 它的FLASH就可以了  还要提取干什么啊
发表于 2010-1-14 20:28:40 | 显示全部楼层
我也正想提问,类似,提取指定网页中的内容,在不打开情况下!
或怎样把网页上面显示的所有文字保存到一个文件中,以便读取
 楼主| 发表于 2010-1-14 21:19:10 | 显示全部楼层
都是答非所问,flash并非重点,重点是字,另外可以不用inetget,用gui去显示特定网页脚本,
发表于 2010-1-14 21:32:18 | 显示全部楼层
InetGet 是读取网页的源文件,我是想读取网页文件,所见即所得的那些!
发表于 2010-1-15 00:00:02 | 显示全部楼层
本帖最后由 guland 于 2010-1-15 00:01 编辑

凑合用吧,  哈哈
#include <GUIConstantsEx.au3>
#include <IE.au3> 
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 337, 175, 326, 333)
$oIE = _IECreateEmbedded()
GUICtrlCreateObj($oIE, 6, 6, 175, 70)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
_time()
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
WEnd
func _time()
        If FileExists(@TempDir&"\time.htm") Then
                FileDelete(@TempDir&"\time.htm")
        EndIf
        FileWriteLine(@TempDir&"\time.htm","<html>"&@CRLF&"<head>")
        FileWriteLine(@TempDir&"\time.htm","<head>")
        FileWriteLine(@TempDir&"\time.htm",'<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />')
        FileWriteLine(@TempDir&"\time.htm","<title></title>")
        FileWriteLine(@TempDir&"\time.htm","</head>")
        FileWriteLine(@TempDir&"\time.htm",'<body scroll="no">')
        FileWriteLine(@TempDir&"\time.htm",'<iframe name="I1" marginwidth="0" marginheight="0" width="240" vspace="-180" hspace="-50" align="middle" height="240" scrolling="no" border="0" frameborder="0" src=http://open.baidu.com/static/time/beijingtime.html ></iframe>')
        FileWriteLine(@TempDir&"\time.htm","</body>")
        FileWriteLine(@TempDir&"\time.htm","</html>")
        _IENavigate($oIE,@TempDir&"\time.htm")
EndFunc

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1威望 +10 金钱 +100 贡献 +50 收起 理由
kn007 + 10 + 100 + 50 感谢

查看全部评分

发表于 2010-1-15 00:57:03 | 显示全部楼层
学习了,楼上的能实现,但好象不能满足楼主。
发表于 2010-1-15 01:14:31 | 显示全部楼层
借10#代码用下,去掉临时文件~
#include <IE.au3>
$Form1 = GUICreate("Form1", 337, 175, 326, 333)
$oIE = _IECreateEmbedded()
GUICtrlCreateObj($oIE, 6, 6, 175, 70)
_IENavigate($oIE, '')
GUISetState()
_time()

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit
        EndSwitch
WEnd

Func _time()
        $s_html = '<html><iframe name="I1" marginwidth="0" marginheight="0" width="240" vspace="-180" hspace="-50" align="middle" height="240" scrolling="no" border="0" frameborder="0" src=http://open.baidu.com/static/time/beijingtime.html ></iframe></html>'
        _IEBodyWriteHTML($oIE, $s_html)
        $oIE.Document.body.Scroll = 'no'
EndFunc   ;==>_time

评分

参与人数 1威望 +10 金钱 +100 贡献 +50 收起 理由
kn007 + 10 + 100 + 50 感谢!挺不错。。我不是很会截取网页,想学 ...

查看全部评分

发表于 2010-1-15 01:16:58 | 显示全部楼层
本帖最后由 afan 于 2010-1-15 02:35 编辑

不过007的目的可能是截取网页片段吧

看了下,要截取的比要摘掉的多得多哦…… 不如摘掉不要显示的
发表于 2010-1-15 10:43:24 | 显示全部楼层
这个页面简单的分析了下
        页面中有一个计时器,Browser 完成页面载入后
开始从服务器上获取时间( 这里返回的是一个long型的毫秒数 ) 来始初始计时器(DOM)
Start working !
为了方便说明 去掉了多余标记 time.htm clock.js 放C:\
#include <IE.au3>
;这是取的节点数据
$oIE = _IECreate("file:///C:/time.htm")
Sleep("50");DOM响应
$oDiv = _IEGetObjById ($oIE, "bjt_info")
$oDivT = _IEGetObjById ($oIE, "time")
$oDivD = _IEGetObjById ($oIE, "date")
MsgBox(0,"这是取的节点数据--",'获取数据:'&_IEPropertyGet($oDiv, "innertext")&@CRLF _
                &'获取时间:'&_IEPropertyGet($oDivT, "innertext")&@CRLF _
                &'获取日期:'&_IEPropertyGet($oDivD, "innertext")&@CRLF _
                )
Sleep(500)                                                
MsgBox(0,"","下面是方法二")
;另类方法直接获取服务器数据
;$return=_xmlhttp(_getdata())
MsgBox(0,"返回的时间是long型的毫秒数 这里需要你来格式化",_xmlhttp(_getdata())); 返回的时间是long型的毫秒数 这里需要你来格式化
Func _getdata()
        Local $code
        $code &= 'function _getdata()' & @CRLF
        $code &= '{' & @CRLF
        $code &= 'var now = new Date()' & @CRLF
        $code &= "var urltemp = 'http://open.baidu.com/app?module=beijingtime&t='+now.getTime()" & @CRLF  
        $code &= 'return urltemp' & @CRLF
        $code &= '}' & @CRLF
        $nJS = ObjCreate("ScriptControl")
        $nJS.language = "JavaScript"
        $nJS.addcode($code)
        $_getdata = $nJS.Run("_getdata")
        Return $_getdata
EndFunc 

Func _xmlhttp($url)
        $oXHR = ObjCreate("MSXml2.XMLHTTP")
        $oXHR.open("post", $url, False)
        $oXHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
        $oXHR.send()
        $iResponseText = BinaryToString($oXHR.ResponseBody)
        Return $iResponseText
EndFunc   ;==>_xmlhttp

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-1-15 10:51:50 | 显示全部楼层
先占个位 分析代码 稍后 发
jhwl 发表于 2010-1-15 10:43



    等待佳作
发表于 2010-1-15 15:14:39 | 显示全部楼层
这个对我来说有点难啊。学习一下
发表于 2010-1-16 16:50:00 | 显示全部楼层
学习学习!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-16 21:59 , Processed in 0.093192 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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