vfp如何截取彩票网站的实时开奖数据

shifa0775 2013-09-28 08:41:21
最近想研究一下彩票,希望用vfp把网站实时更新的开奖结果截取下来,然后追加到自己的数据表里面。如何截取呢?比如http://cp.360.cn/ssccq?a=wyss中的开奖结果
...全文
767 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
a5613656 2016-01-07
  • 打赏
  • 举报
回复
shifa0775 2013-10-03
  • 打赏
  • 举报
回复
非常感谢回马枪前辈!
shifa0775 2013-09-28
  • 打赏
  • 举报
回复
感谢两位前辈的热心指点,因为第一次发帖,也不懂得那些分怎么回事,就给你们每人各10分了,原来发帖时下的分太少,不好意思
回马枪 2013-09-28
  • 打赏
  • 举报
回复
别别别 免老师 当数据量很大时 用数组取数据速度快 当页面很复杂时 用 STREXTRACT( ) 函数不一定行 这个页面就很难用 STREXTRACT( ) 函数取数据 http://www.iata.org/about/members/Pages/airline-list.aspx?All=true
lygcw9602 2013-09-28
  • 打赏
  • 举报
回复
回马枪老师: 楼主要的是最新开奖数据,也就是第一条记录。 u012273937: 回马枪是我的老师,你可以向回马枪老师请教!
回马枪 2013-09-28
  • 打赏
  • 举报
回复
打错了 把 If objRow.cells(1).innertext <> "期号" 改成 If objRow.cells(0).innertext <> "期号"
shifa0775 2013-09-28
  • 打赏
  • 举报
回复
我自己搞了一下,可以下载开奖结果的数据了,但是您的更全面,更简练,还是希望您不吝赐教
shifa0775 2013-09-28
  • 打赏
  • 举报
回复
Local lcRemoteUrl,lcRemoteFile,lcLocalhtm,lcLocalFile Declare Integer DeleteUrlCacheEntry In Wininet.Dll String szUrl Declare Integer URLDownloadToFile In urlmon.Dll Integer pCaller,String szURL,String szFileName,Integer dwReserved,Integer lpfnCB *--下载网页 *!* lcRemoteUrl="http://cp.360.cn/ssccq/?src=nav" lcremoteurl="http://cp.360.cn/ssccq?a=wyss" lcLocalhtm="d:\ssc.txt" =DeleteUrlCacheEntry(lcRemoteUrl) &&清理缓存,这时实时刷新的数据时很有用。 If URLDownloadToFile(0,lcRemoteUrl,lcLocalhtm,0,0)=0 Messagebox("下载失败",48,'信息提示') Endif Clear Dlls lcStr=FileToStr("d:\ssc.txt") lc1=Strextract(lcstr,'<tbody id="kjcodelist">',"/tbody",1) lc2=STREXTRACT(lc1,'<td>','</td>',1) lc3=STREXTRACT(lc1,'red">','<',1) ?lc2 ?lc3 lc4=STREXTRACT(lc3,'',' ',1) ?lc4 FOR i=1 to 3 lc5=STREXTRACT(lc3,' ',' ',i) ?lc5 ENDFOR lc6=SUBSTR(lc3,9,1) ?lc6
shifa0775 2013-09-28
  • 打赏
  • 举报
回复
按照您的代码,执行后出现下面的问题是怎么回事呢?
lygcw9602 2013-09-28
  • 打赏
  • 举报
回复
SELECT * FROM OLDSSC WHERE 期号==TRANSFORM(YEAR(DATE()))+STREXTRACT(cHtml,[<TD>],[</TD>]) INTO CURSOR T 改为: SELECT * FROM OLDSSC WHERE 期号==TRANSFORM(YEAR(DATE()))+STREXTRACT(cHtml,[<TD>],[</TD>]) AND ALLTRIM(开奖号码)<>'开奖' INTO CURSOR T
lygcw9602 2013-09-28
  • 打赏
  • 举报
回复
SET SAFETY OFF 
IF NOT FILE([OLDSSC.DBF])
   Create TABLE OLDSSC (期号 C(11), 开奖号码 C(5))
ENDIF
oIE = Createobject("internetexplorer.application")
oIE.Visible = .F.
oIE.Navigate("http://cp.360.cn/ssccq?a=wyss")
tStartSecond = Seconds()
Do While oIE.Busy = .T. Or oIE.ReadyState#4
   If Seconds() - tStartSecond > 10
      Exit
   Endif
   =Inkey(0.5)
Enddo
cHtml=STREXTRACT(oIE.Document.Body.InnerHtml,[<TBODY id=kjcodelist],[</EM></TD>])+[</EM></TD>]
SELECT * FROM OLDSSC WHERE 期号==TRANSFORM(YEAR(DATE()))+STREXTRACT(cHtml,[<TD>],[</TD>]) INTO CURSOR T
IF RECCOUNT([T])=0
   INSERT INTO OLDSSC VALUES (TRANSFORM(YEAR(DATE()))+STREXTRACT(cHtml,[<TD>],[</TD>]),CHRTRAN(STREXTRACT(cHtml,[<EM class=red>],[</EM></TD>]),[ ],[]))
ENDIF
oIE.Quit()
Go Top
Browse Last
将上面的代码放在计时器控件的TIMER事件中,然后再设置间隔时间,白天600秒,晚上300秒获取一次数据。自己设计吧。

2,748

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧