set proc to "lll.prg"&&你的包含这段子程序的程序文件
osample=createobj("internetexplorer.application")
osample.navigate("http://www.lottery.)
cserial="13084"&&你要查的期数
=BrowseAnother(osample,cSerial)
Procedure BrowseAnother
Lparameters oie,cSerial&&浏览器对象,期数
&&缺少时自行创建,期数缺少时默认为当前期
#Define err_web_select "SELECT选择框个数变化,未能定位。"
Local otab,ntable,nrow,ncolumn,aResult[1]
If Type("oie")#"O"&&
oie=Createobject("InternetExplorer.Application")
oie.Navigate("http://www.lottery.)
Do While oie.readystate#4
Wait "" Timeout 1
Enddo
Endif
******************以上确保传递了ie对象,如果没有就自行创建*******************
otab=oie.Document.getelementsbytagname("select")&&取得Select选择框对象引用
If otab.Length=1 .And. !Empty(cSerial)
otab.Item(0).Value=cSerial&&改期数为传入值
oie.Document.Forms(0).submit&&递交网页申请,页面刷新后,oTab的对象引用被重置,不可用了
&&需要重新申请引用
Else
If otab.Length>1
=Messagebox(err_web_select,0)&&有多个SELECT,不能定位,需要重新分析。
Return .F.
Endif
Endif
***********************************取数据**********************************************************
otab=oie.Document.getelementsbytagname("table")&&取页面所有表
For ntable=1 To otab.Length&&表、行、列均是从0开始的,此为oTab中表的总个数
For nrow=1 To otab.Item(ntable-1).Rows.Length&&当前表(ntable-1号表)中总行数
For ncolumn=1 To otab.Item(ntable-1).Rows(nrow-1).cells.Length&&当前表,当前行(第nRow-1行)中的总列数(单元格数)
aResult[ALEN(aResult)]=otab.Item(ntable-1).Rows(nrow-1).cells(ncolumn-1).InnerText&&取每个单元格文本
Dimension aResult[ALEN(aResult)+1]&&数组变大重申明
Endfor
Endfor
Endfor
***************************************筛选数据********************************************************
Local n1,n2,n3,n4,n5,n6,n7,nBall&&各位出奖号及用的第几套球
For ncolumn=1 To Alen(aResult)-1
If "出球顺序:"$aResult[ncolumn] .And. "本期使用"$aResult[ncolumn]&&检索含开奖顺序的数组,应该是aResult[8]
n1=Substr(aresult[ncolumn],At("出球顺序:",aresult[ncolumn])+10,2)
n2=Substr(aresult[ncolumn],At("出球顺序:",aresult[ncolumn])+13,2)
n3=Substr(aresult[ncolumn],At("出球顺序:",aresult[ncolumn])+16,2)
n4=Substr(aresult[ncolumn],At("出球顺序:",aresult[ncolumn])+19,2)
n5=Substr(aresult[ncolumn],At("出球顺序:",aresult[ncolumn])+22,2)
n6=Substr(aresult[ncolumn],At("出球顺序:",aresult[ncolumn])+25,2)
n7=Substr(aresult[ncolumn],At("出球顺序:",aresult[ncolumn])+28,2)
nBall=Substr(aresult[ncolumn],At("本期使用",aresult[ncolumn])+12,1)
Exit
Endif
Endfor
Endproc
运行不了,反映
otab=oie.Document.getelementsbytagname("select")&&取得Select选择框对象引用-------不是一个对象,添麻烦了。
[
本帖最后由 jinanshui 于 2013-8-18 11:28 编辑 ]