找回密码
 加入
搜索
查看: 3591|回复: 3

[IE类操作] 已解决!IE操作模块是否能保存IE的表的某行数据?

[复制链接]
发表于 2010-8-2 19:02:48 | 显示全部楼层 |阅读模式
本帖最后由 saromman 于 2010-8-11 08:50 编辑

现在的情况是这样的:每天,我都要登录到某一个固定网站,然后点击固定的连接,然后就显示给我了一个表,这个表中的某一行,才是我想每天进行的保存的操作,这个IE的表,没有ID,也没有NAME,就是一个简单的表,我想要保存其中1行数据,这个行的第一个字段的值比方说是saromman;然后把这个行的后边的数据保存起来,保存到一个EXCEL或者文本都行,这就是每天都这样操作。我就想用autoIT来实现,现在我已经做到打开IE,登录进来,然后显示了这个表,但是怎么才能保存表中特定行的数据呢??请高手指教啊??
发表于 2010-8-2 19:23:15 | 显示全部楼层
应该很简单的,把网址发出来,或把相关的页面保存出来看看

类似的工作我也弄过,一同事每天要登陆一网站,查看当天的金属价格(时间不定,9:30-11:30之间网站公布当天价格),并把当天价格COPY到EXCEL中,然后发给老板!
我给它做了一个放到服务器上了,每天9:30开始登陆网站,查看当天价格是否发布,如果没发布就关闭等5分钟在登陆,发布后会点击到当天价格的页面去,把相关的数据转到EXCEL表格中,并直接邮件给老板!
 楼主| 发表于 2010-8-3 17:29:44 | 显示全部楼层
本帖最后由 saromman 于 2010-8-3 17:32 编辑

问题已经解决,现在写个笔记来记录一下,顺便给油相同困惑的人一个启示:
发完帖子后,我就一直在看帮助手册,终于发现IE模块里面有个_IETableGetCollection 和_IETableWriteToArray 这2个函数,然后经过我自己的不懈努力,终于实验成功了。思路是这样的,先用察看的方法,看这个HMTL页面有几个TABLE,看需要保存的数据在哪个TABLE里,然后用_IETableGetCollection探测该TABLE,把得到的结果整成一个STRING,然后进行处理。
代码是这样的:
;--------------------------------重点业务发展日报-------------------------------------
;     报表ID=3518
Func zhongdianyewufazhanribao()
        Local $report_title,$table,$td,$td2,$sj,$oExcel
        _IENavigate($oIE,"http://30.1.1.1:2008/LinkPage/rb_sdyw_new1.aspx?ReportId=3518")
        ;开始进行标题的探测保存
        $report_title=_IEPropertyGet(_IEGetObjById($oIE,"lb_Title"),"innertext")
        $report_title=StringRight($report_title,StringLen($report_title)-StringInStr($report_title,"2")+1)
        ;表标题整理完毕
        $table=_IETableGetCollection($oIE,5)
        If @error=0 Then
                $td=_IETableWriteToArray ($table)
                If @error=0 Then
                        ;ClipPut($td[0][0])
                        $td2=String($td[0][0])
                        $sj=StringMid($td2,StringInStr($td2,"河南",0),200)
                        $sj=StringLeft($sj,200-StringInStr($sj,Chr(13),1)-4)
                        $td=StringSplit($sj,Chr(32));chr(32)是空格的意思 13是回车,9是TAB
                        $oExcel=_ExcelBookOpen("d:\渠道支撑每日报表自动更新版\重点业务发展日报.xls")
                        _ExcelRowInsert($oExcel,6,1)
                        _ExcelWriteArray($oExcel,6,1,$td)
                        _ExcelWriteCell($oExcel,$report_title,"A6")
                        _ExcelBookSave($oExcel)
                        _ExcelBookClose($oExcel)
                EndIf
        EndIf
EndFunc
其中的_ExcelBookOpen这些的函数是一个EXCEL.AU3的文件提供的,可以在论坛下载。
发表于 2010-8-3 19:51:48 | 显示全部楼层
一般思路
获取整个源码,观察异同,正则获取所需数据即可
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-22 16:20 , Processed in 0.086971 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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