| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1873 人关注过本帖, 1 人收藏
标题:各位大侠,能把这些内容用VFP 下载下来并能实时更新放到一个表中吗
只看楼主 加入收藏
jinanshui
Rank: 2
等 级:论坛游民
帖 子:294
专家分:67
注 册:2009-10-6
结帖率:93.88%
收藏(1)
已结贴  问题点数:20 回复次数:25 
各位大侠,能把这些内容用VFP 下载下来并能实时更新放到一个表中吗
各位大侠,能把
http://www.lottery.
”出球顺序: 26 30 02 33 31-12 11(本期使用:第3套摇奖球)“
的这些内容用VFP 实时更新下载下来放到一个表中吗

[ 本帖最后由 jinanshui 于 2013-8-7 14:59 编辑 ]
2013-08-07 14:57
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:0 
哈哈,玩彩票索?,给你我的源码。
2013-08-07 15:49
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:0 
这个是我玩3D和双色球时用的一个子例程,供你参考,只是源网站不一样。自己改下。
Public oie,otab,N,i,j,ctext,clause
Use 3d
oIE = Createobject("InternetExplorer.Application")&&创建IE进程
For a=1 To 164
    clause="oIE.Navigate('http://zx.caipiao.')"&&要打开的网站
    &clause&&&&&执行打开网页
    Do While oie.readystate#4&&&&&&如果等于4,表示打开网页完成
        Wait "" Timeout 1
    Enddo
    oTab=oIE.Document.getElementsByTagName("TABLE")&&&&&获取你要的表格数据,以下为数据分析,网页不同表格数据不同,你自己改下。
    For i=3 To oTab.Item.Rows.Length-1&&表的行数,从0开始,2表示第三行
        Append Blank&&&每读取一行,在保存表中就增加一行
        For j=1 To oTab.Item.Rows(i-1).cells.Length&&表的格数,从0开始,
            cText=oTab.Item.Rows(i-1).cells(j-1).innerText
            clause ="replace "+Field(j)+" WITH ALLTRIM(ctext)"
            &clause&&&&&写入数据到表3D。
        Endfor
    Endfor
    oie.Document.Close&&取数据完毕,关闭IE例程
Endfor
2013-08-07 15:59
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:0 
思路差不多如下:
创建IE例程----》打开网址-------》按标签名查找网页中有多少个归类为“table”的表格-----------》校验表格数据找到你要的表格--------------》从第0行第0列开始读取单元格数据,判断后写入你自己的表中。

每天打开一次,可以用期数来进行校验是否为最新数据,如果不是,进行下载更新。
2013-08-07 16:05
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
这个网页由两部分组成,要提取的数据部分,按正常方法是下载不下来的。
必须是精通网页制作与VFP的高手才能提取你所要的数据。

[ 本帖最后由 sdta 于 2013-8-9 01:03 编辑 ]

坚守VFP最后的阵地
2013-08-09 01:01
jinanshui
Rank: 2
等 级:论坛游民
帖 子:294
专家分:67
注 册:2009-10-6
收藏
得分:0 
以下是引用sdta在2013-8-9 01:01:57的发言:

这个网页由两部分组成,要提取的数据部分,按正常方法是下载不下来的。
必须是精通网页制作与VFP的高手才能提取你所要的数据。
版主大侠是高手,请出手。
2013-08-09 08:17
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:10 
确如版主所说,这个网页是两部的,准确来说是两个网页,一个ASP网页内嵌在内一个网页里。用FPAGE分别打开,第一个网页叫default.aspx,第二个包含你要的数据的叫detail.aspx,直接取detail.aspx的数据。贴代码如下:


**********************************访问页面**********************************************************
Public oie,otab,aResult[1],ntable,nrow,ncolumn
oie=Createobject("InternetExplorer.Application")&&建立IE
oie.Navigate("http://www.lottery.)&&访问页面
Do While oie.readystate#4
    Wait "" Timeout 1
Enddo&&等IE就绪

***********************************取数据**********************************************************
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]&&检索含开奖顺序的数组,应该是aResult[8]
        n1=Substr(aResult[ncolumn],At(":",aResult[ncolumn],1)+2,2)&&球1,用网页复制来的“:”定位,是双字节
        n2=Substr(aResult[ncolumn],At(" ",aResult[ncolumn],1)+1,2)&&2
        n3=Substr(aResult[ncolumn],At(" ",aResult[ncolumn],2)+1,2)&&3
        n4=Substr(aResult[ncolumn],At(" ",aResult[ncolumn],3)+1,2)&&4
        n5=Substr(aResult[ncolumn],At(" ",aResult[ncolumn],4)+1,2)&&5
        n6=Substr(aResult[ncolumn],At("-",aResult[ncolumn],1)+1,2)&&球6,“-”后两位
        n7=Substr(aResult[ncolumn],At(" ",aResult[ncolumn],5)+1,2)&&7
        nBall=Substr(aResult[ncolumn],At("第",aResult[ncolumn],1)+2,1)&&第几套球,字串中就一个“第”字
    Endif
Endfor
*********************把这几个插入你的数据表,就OK了。
*********************顺便说一下,可以通过DOM方式访问http://www.lottery.,并给它的SELECT传值来改变那个下拉选择框,来获取各期的开情况,抛砖为的引玉不想打你一砖头,凡事自己多思考!!!
收到的鲜花
  • sdta2013-08-11 00:40 送鲜花  20朵  
2013-08-10 14:46
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:5 
程序代码:
If "出球顺序"$aResult[ncolumn]&&检索含开奖顺序的数组,应该是aResult[8]
        n1=Substr(aResult[ncolumn],At(":",aResult[ncolumn],1)+2,2)&&球1,用网页复制来的“:”定位,是双字节
        n2=Substr(aResult[ncolumn],At(" ",aResult[ncolumn],1)+1,2)&&2
        n3=Substr(aResult[ncolumn],At(" ",aResult[ncolumn],2)+1,2)&&3
        n4=Substr(aResult[ncolumn],At(" ",aResult[ncolumn],3)+1,2)&&4
        n5=Substr(aResult[ncolumn],At(" ",aResult[ncolumn],4)+1,2)&&5
        n6=Substr(aResult[ncolumn],At("-",aResult[ncolumn],1)+1,2)&&球6,“-”后两位
        n7=Substr(aResult[ncolumn],At(" ",aResult[ncolumn],5)+1,2)&&7
        nBall=Substr(aResult[ncolumn],At("第",aResult[ncolumn],1)+2,1)&&第几套球,字串中就一个“第”字
    Endif


这儿弄错了,应该是"出球顺序"
2013-08-10 22:54
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:0 
要么直接定位到aRsult[8],我考虑不够周全,因为存在重复取数的问题,如不直接定位,请在IF...ENDIF对内取完第8个nBall的下面加一句EXIT,跳出FOR....ENDFOR,避免重复取数.请见谅,只是一个想法的初次实现,未严格验证.

下面上传已验证的程序:
getwebelements.rar (1.37 KB)


[ 本帖最后由 whinda 于 2013-8-10 23:26 编辑 ]
2013-08-10 23:03
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
收藏
得分:0 
程序代码:
***********************下面更改下拉选框,浏览往期历史数据。*****************
*前提:oie是浏览器对象,并已打开相应网页"http://www.lottery./lottery/dlt/detail.aspx"
*传入参数为要查的期数,文本格式:“13091*例句:BrowseAnother("13089")
Procedure BrowseAnother
    Lparameters cSerial        &&传入期数
    otab=oie.Document.getelementsbytagname("select")&&取得Select选择框对象引用
    otab.Item(0).Value=cSerial&&改期数为传入值
    oie.Document.Forms(0).submit&&递交网页申请,页面刷新后,oTab的对象引用被重置,不可用了
Endproc                    &&需要重新申请引用。
                                &&网页的数据被刷新,可以重复上文述及的取数操作,获得往期数据。     
收到的鲜花
  • sdta2013-08-11 00:40 送鲜花  20朵  
2013-08-11 00:01
快速回复:各位大侠,能把这些内容用VFP 下载下来并能实时更新放到一个表中吗
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030794 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved