| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6214 人关注过本帖, 3 人收藏
标题:老师好,又来请教了,这个网页的采集入口如何找,谢谢
只看楼主 加入收藏
jinanshui
Rank: 2
等 级:论坛游民
帖 子:295
专家分:67
注 册:2009-10-6
收藏
得分:0 
以下是引用sdta在2021-5-31 23:26:12的发言:

顺序调整下即可
lyText = STREXTRACT(lcText,',"lotteryDrawNum":"','","lotteryDrawResult":"')
lcText = STREXTRACT(lcText,'lotteryUnsortDrawresult":"','","matchList')
?? lcText ,lyText



谢谢老师,最难的遍历来了,怎样一期一组,全部找出来呢?尝试了一晚上,也没找到,学不会,再次请教老师.

[此贴子已经被作者于2021-6-1 07:02编辑过]

2021-06-01 06:59
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
下载数据用时比较长(8秒左右),解析数据应该能控制在1秒内

坚守VFP最后的阵地
2021-06-01 07:19
jinanshui
Rank: 2
等 级:论坛游民
帖 子:295
专家分:67
注 册:2009-10-6
收藏
得分:0 
以下是引用sdta在2021-6-1 07:19:55的发言:

下载数据用时比较长(8秒左右),解析数据应该能控制在1秒内

老师,您是大神级高手,我是一个小菜鸟
2021-06-01 07:43
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用jinanshui在2021-6-1 06:59:50的发言:




谢谢老师,最难的遍历来了,怎样一期一组,全部找出来呢?尝试了一晚上,也没找到,学不会,再次请教老师.

试试
FOR lnj = 1 TO OCCURS("lotteryDrawNum", lcText)
    lyText = STREXTRACT(lcText,',"lotteryDrawNum":"','","lotteryDrawResult":"', lnj)
    lcText = STREXTRACT(lcText,'lotteryUnsortDrawresult":"','","matchList', lnj)
    ? lcText ,lyText
ENDFOR

坚守VFP最后的阵地
2021-06-01 08:06
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:5 
FOR lnj = 1 TO OCCURS("lotteryDrawNum", lcText)
    lyText = STREXTRACT(lcText,',"lotteryDrawNum":"','","lotteryDrawResult":"', lnj)
    lcText = STREXTRACT(lcText,'lotteryUnsortDrawresult":"','","matchList', lnj)
    ? lcText ,lyText
ENDFOR

改为

FOR lnj = 1 TO OCCURS("lotteryDrawNum", lcText)
    lyText = STREXTRACT(lcText,',"lotteryDrawNum":"','","lotteryDrawResult":"', lnj)
    lxText = STREXTRACT(lcText,'lotteryUnsortDrawresult":"','","matchList', lnj) && lcText 为下载的数据
    ? lxText ,lyText
ENDFOR

坚守VFP最后的阵地
2021-06-01 09:49
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
从11006期开始才有出球顺序的数据,也就是lxText提取的数据

坚守VFP最后的阵地
2021-06-01 10:00
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏(1)
得分:0 
以下是引用sdta在2021-6-1 07:19:55的发言:

下载数据用时比较长(8秒左右),解析数据应该能控制在1秒内

下载的数据有5M多,记录也2000多条,用STREXTRACT()要秒杀有难度。
试试用JavaScript应该能秒杀
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
CREATE CURSOR tt (DrawNum C(5), DrawResult C(20))
cUrl = "https://webapi./gateway/lottery/getHistoryPageListV1.qry?gameNo=85&provinceId=0&pageSize=0"
oHttp = CREATEOBJECT("MSXML2.XMLHTTP")
oHttp.Open("GET", cUrl, .F.)
oHttp.Send()
jsCode = 'var data='+oHttp.responseText+';var list=data["value"]["list"];'
oSC = CREATEOBJECT("ScriptControl")
oSC.Language = "JavaScript"
oSC.AddCode(jsCode)
FOR i=0 TO oSC.eval('list.length')-1
    INSERT INTO tt VALUES (oSC.eval('list['+TRANSFORM(i)+']["lotteryDrawNum"]'),;
                           oSC.eval('list['+TRANSFORM(i)+']["lotteryUnsortDrawresult"]'))
ENDFOR
SELECT * FROM tt
RETURN
2021-06-01 14:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:5 
JS部分这样写好读一点
程序代码:
jsCode = 'var data=' + oHttp.responseText + ';' +;
         'var list=data["value"]["list"];' +;
         'function getList(n,name){return list[n][name];}'
oSC = CREATEOBJECT("ScriptControl")
oSC.Language = "JavaScript"
oSC.AddCode(jsCode)
FOR i=0 TO oSC.eval('list.length')-1
    INSERT INTO tt VALUES (oSC.run("getList",i,"lotteryDrawNum"),;
                           oSC.run("getList",i,"lotteryUnsortDrawresult"))
ENDFOR
2021-06-01 15:30
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用吹水佬在2021-6-1 15:30:05的发言:

JS部分这样写好读一点
jsCode = 'var data=' + oHttp.responseText + ';' +;
         'var list=data["value"]["list"];' +;
         'function getList(n,name){return list[n][name];}'
oSC = CREATEOBJECT("ScriptControl")
oSC.Language = "JavaScript"
oSC.AddCode(jsCode)
FOR i=0 TO oSC.eval('list.length')-1
    INSERT INTO tt VALUES (oSC.run("getList",i,"lotteryDrawNum"),;
                           oSC.run("getList",i,"lotteryUnsortDrawresult"))
ENDFOR

看惯VFP的代码,再看别的代码很不习惯!

坚守VFP最后的阵地
2021-06-01 16:13
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用sdta在2021-6-1 16:13:03的发言:


看惯VFP的代码,再看别的代码很不习惯!

windows环境避免不了,很多时要通过COM服务应用
面对WEB方面的编程,JS、HTML、CSS才是主体
就好象VFP面对EXCEL,不用VBA怕好难成事
2021-06-01 17:23
快速回复:老师好,又来请教了,这个网页的采集入口如何找,谢谢
数据加载中...
 
   



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

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