注册 登录
编程论坛 VFP论坛

各位老师好,求助一个问题,怎么获取 http://score.nowscore.com/网站中的赛程信息与每行中“欧”的链接地址

hellofanghui 发布于 2021-05-24 11:27, 3228 次点击
各位老师好,求助一个问题,怎么获取 http://score.网站中的赛程信息与每行中“欧”的链接地址
我看了看网页中的源代码,里面根本没有这些球队的赛程信息。不知道该怎么弄,向各位老师求助一下,希望老师不吝赐教。
谢谢各位老师。
27 回复
#2
吹水佬2021-05-24 11:40
链接是调用javascript函数EuropeOdds(),如:
javascript:EuropeOdds(2020049)
javascript:EuropeOdds(2008793)
参数是一个编号,地址就是:
http://score.
http://score.
#3
hellofanghui2021-05-24 14:22
回复 2楼 吹水佬
这么快就回复了,非常感谢,谢谢老师指点
我想问问如何获取这个网页的源代码,就是网页中赛事信息这块的网页代码,我打开这个网页然后查看源代码时候信息很少,而且没有赛事信息的这段网页的代码
#4
吹水佬2021-05-24 16:29
页面有点复杂,简单看了一下
先看看这个地址:http://score.
看看A、B两个数组的关系,如:

A[0]=[2008793,11,19484,19342,'淄博蹴鞠<font color=#880000>(中)</font>','淄博蹴鞠<font color=#880000>(中)</font>','Zibo Cuju F.C.<font color=#880000>(中)</font>','新疆雪豹纳欢','新疆雪豹納歡','Xinjiang Tianshan Leopard','16:00','2021,4,24,16,00,00',0,0,0,,,0,0,0,0,'A-6','A-5',1,'True',0.25,'','',0,0,0,9,'',2.25,0,0,0,1];
A数组第一个元素(A[0])的 2008793 是编码、11是名称(中甲A)在B数组的下标,其他部分主要是页面显示数据。
B[11]=[61,'中甲A','中甲A','CHA D1A','#5780d0',1,1,'subleague.aspx?sclassid=61',0,45,0,1];
“欧”链接地址:
http://score.

A、B数组具体是什么关系就不清楚,还有这种情况:如“挪超”有多个编码,对足球不太了解,你自己去分析一下应该明白是什么关系。
A[33]=[2002260,3,479,2255,'奥德格伦兰','奧特格寧蘭','Odd Grenland','萨普斯堡','薩普斯堡','Sarpsborg 08','21:00','2021,4,24,21,00,00',0,0,0,,,0,0,0,0,'11','12',,'True',0.5,'','',0,0,2,3,'',2.5,0,0,1,1];
A[84]=[2002261,3,498,472,'布兰','白蘭恩','Brann','博多格林特','波杜基林特','Bodo Glimt','23:59','2021,4,24,23,59,00',0,0,0,,,0,0,0,0,'16','3',,'True',-0.75,'','',0,0,2,3,'',3.25,0,0,1,1];
A[85]=[2002262,3,2822,475,'海于格松','侯格辛特','Haugesund','斯塔贝克','史達比克','Stabaek','23:59','2021,4,24,23,59,00',0,0,0,,,0,0,0,0,'13','10',,'True',0.25,'','',0,0,2,3,'',2.5,0,0,1,1];
A[86]=[2002263,3,4174,1285,'基斯迪辛特','基斯迪辛特','Kristiansund BK','斯托姆加斯特','史卓加斯特','Stromsgodset','23:59','2021,4,24,23,59,00',0,0,0,,,0,0,0,0,'8','7',,'True',0.5,'','',0,0,2,3,'',3,0,0,1,1];
A[87]=[2002264,3,509,495,'利勒斯特罗姆','利尼史特朗','Lillestrom','维京','維京','Viking','23:59','2021,4,24,23,59,00',0,0,0,,,0,0,0,0,'14','9',,'True',0,'','',0,0,2,3,'',2.75,0,0,1,1];
A[88]=[2002265,3,2279,485,'莫达伦','莫達倫','Mjondalen IF','瓦勒伦加','華拿倫加','Valerenga','23:59','2021,4,24,23,59,00',0,0,0,,,0,0,0,0,'6','4',,'True',-0.5,'','',0,0,2,3,'',2.5,0,0,1,1];
A[89]=[2002266,3,514,1282,'特罗姆瑟','特羅素','Tromso IL','桑德菲杰','辛迪夫佐特','Sandefjord','23:59','2021,4,24,23,59,00',0,0,0,,,0,0,0,0,'5','15',,'True',0.75,'','',0,0,2,3,'',2.5,0,0,1,1];

B[3]=[22,'挪超','挪超','NOR D1','#666666',1,1,'league.aspx?sclassid=22',0,12,0,0];





[此贴子已经被作者于2021-5-24 16:31编辑过]

#5
hellofanghui2021-05-24 18:44
回复 4楼 吹水佬
天啊,老师太厉害了!非常感谢老师!以后我会常来和老师学习的。

#6
吹水佬2021-05-24 22:45
欧link
只有本站会员才能查看附件,请 登录

程序代码:
CREATE CURSOR tt (编码 I, 名称 V(20), 欧link V(50))
cUrl = "http://score./data/bf.js?000"
oHttp = CREATEOBJECT("MSXML2.XMLHTTP")
oHttp.Open("GET", cUrl, .F.)
oHttp.Send()
jsCode = STRCONV(oHttp.responseBody,11)
nBegin = 2
nEnd = RAT(";", jsCode, 2) + 1
jsCode = SUBSTR(jsCode, nBegin, nEnd-nBegin)
sc = CREATEOBJECT("ScriptControl")
sc.Language = "JavaScript"
sc.AddCode(jsCode)
nRows = sc.Eval("A.length")
nCols = sc.Eval("A[0].length")
FOR i=0 TO nRows-1
    INSERT INTO tt VALUES (;
        sc.Eval("A["+TRANSFORM(i)+"][0]"),;    && 编号
        sc.Eval("B["+TRANSFORM(sc.Eval("A["+TRANSFORM(i)+"][1]"))+"][1]"),;  && 名称
        "http://score./1x2/"+TRANSFORM(sc.Eval("A["+TRANSFORM(i)+"][0]"))+".htm")
ENDFOR
SELECT * FROM tt


[此贴子已经被作者于2021-5-24 22:48编辑过]

#7
schtg2021-05-25 06:51
@吹版,谢谢!
#8
sdta2021-05-25 09:56
A[0]=[2020220,53,35886,35982,'瓜达拉哈拉女足','哥達拿查拉女足','Chivas Guadalajara (w)','堤格雷斯女足','堤格雷斯女足','Tigres (w)','10:00','2021,4,25,10,03,28',1,0,1,,,0,0,0,1,'','',,'True',-0.25,'','',0,0,0,38,'',3,0,3,1,0];

2020220 代表 欧 连接网页地址:http://score.
53 代表 在数组B中的位置,如:B[53]=[1817,'墨西女超','墨西女超','Mex MFW','#669955',0,1,'',0,43,0,0]; 数组B应该是动态变化的
1817 代表墨西女超

[此贴子已经被作者于2021-5-25 13:12编辑过]

#9
sdta2021-05-25 09:57
根据楼上的简要分析,楼主应该能写出代码了

var A=Array(177);
var B=Array(65);
var C=Array(47);
var matchcount=177;
var sclasscount=65;
var countrycount=47;
var matchdate="05月25日"

数组A、B、C 应该是动态变化的

[此贴子已经被作者于2021-5-25 11:58编辑过]

#10
吹水佬2021-05-25 11:14
这样写易读些
程序代码:
CREATE CURSOR tt (编码 I, 名称 V(20), 欧link V(50))
cUrl = "http://score./data/bf.js?000"
oHttp = CREATEOBJECT("MSXML2.XMLHTTP")
oHttp.Open("GET", cUrl, .F.)
oHttp.Send()
jsCode = STREXTRACT(STRCONV(oHttp.responseBody,11), "?", "ShowBf();")
TEXT TO jsCode TEXTMERGE NOSHOW PRETEXT 7
    <<jsCode>>
    function _getID(n)  {return A[n][0];}
    function _getNum(n) {return A[n][1];}
    function _getName(n){return B[n][1];}
ENDTEXT
sc = CREATEOBJECT("ScriptControl")
sc.Language = "JavaScript"
sc.AddCode(jsCode)
nRows = sc.Eval("A.length")
FOR i=0 TO nRows-1
    INSERT INTO tt VALUES (;
        sc.Run("_getID", i),;    && 编号
        sc.Run("_getName", sc.Run("_getNum",i)),;  && 名称
        "http://score./1x2/" + TRANSFORM(sc.Run("_getID",i)) + ".htm")  && 欧link
ENDFOR
GO TOP
BROWSE TITLE " "+sc.Eval("matchdate")
RETURN
#11
吹水佬2021-05-25 12:49
回复 9楼 sdta
用浏览器打开看页面也是不断定时刷新数据的
数据记录也是会变动的
#12
sdta2021-05-25 13:18
回复 11楼 吹水佬
是的
#13
sdta2021-05-25 15:36
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2021-5-25 15:50编辑过]

#14
吹水佬2021-05-25 16:32
这几个数组(A、B、C)数据加载后就调用 ShowBf() 函数进行处理
在页面(http://score.)源码可以看到
ShowBf() 调用 MakeTable() 函数进行生成动态页面列表
有几处调用setTimeout()设置定时器时间: 3000、1000、500(ms),刷新也够快
#15
hellofanghui2021-05-25 18:11
各位老师太辛苦了!一万个赞!非常感谢
#16
hellofanghui2021-05-25 18:13
我天啊。。。。。无言以对,,太牛了!
#17
sdta2021-05-25 18:16
程序代码:
CLEAR
cUrl = "http://score./data/bf.js?000&" + SUBSTR(SYS(2015), 2)
oHttp = CREATEOBJECT("MSXML2.XMLHTTP")
oHttp.Open("GET", cUrl, .F.)
oHttp.Send()
lcText = STRCONV(oHttp.responseBody,11)
ALINES(laText, lcText, 5, CHR(13) + CHR(10))
DIMENSION laText[ALEN(laText), 1]
CREATE CURSOR test (A1 c(254))
INSERT INTO test FROM ARRAY laText
SELECT A1 FROM test WHERE LEFT(A1, 1) == "B" INTO CURSOR temp
LOCAL laB[RECCOUNT(), 2]
lcWz_B = "http://info./cn/"
SCAN
    ALINES(laStr, A1, "=[", ",'", "',", ",", "];")
    laB[RECNO(), 1] = laStr[3]
    laB[RECNO(), 2] = IIF(EMPTY(laStr[9]), "", lcWz_B) + laStr[9]
ENDSCAN
*LIST MEMORY LIKE laB
* 赛程信息
FOR lnJ = 8 TO ALEN(laText, 1)
    IF LEFT(laText[lnJ], 1) != "A"
        EXIT
    ENDIF
    ALINES(laStr, laText[lnJ], "=[", ",", "];")
    ? lnJ - 7, STREXTRACT(laText[7], '"', '"'), laB[&laStr[3] + 1, 1],;
        &laStr[12], ICASE(&laStr[19] = -1, "完", ""),;
        IIF("<"$&laStr[6], STREXTRACT(&laStr[6], "", "<"), &laStr[6]),;
        laStr[20] + "-" + laStr[21], &laStr[9],;
        laStr[41] + "-" + laStr[42]+ "/" + laStr[43] + "-" + laStr[44]
ENDFOR
#18
hellofanghui2021-05-25 18:16
回复 10楼 吹水佬
辛苦了老师,真的太厉害了,佩服的五体投地!!!
#19
hellofanghui2021-05-25 18:21
回复 9楼 sdta
谢谢老师,VFP我是从上学那会就开始用,处理数据特别方便,用到现在已经很多年了,虽然瘾大但技术差,很多东西都需要查询资料,没想到这里的老师真的很厉害,而且愿意赐教指点像我这样的低水平水生。
#20
hellofanghui2021-05-25 18:27
回复 17楼 sdta
非常感谢老师的指点,很不好意思的再向老师请教一个问题,例如 http://score. 这个网页中
在比赛队名称下方,有一个选项框(其中包括,所有指数,初指,即使三个选项)它默认的是 "初指",麻烦请教老师有什么办法可以通过程序来让他变为“所有指数”呢?
#21
hellofanghui2021-05-25 18:44
回复 6楼 吹水佬

我的老天,您是怎么学的,这也太厉害了,不是恭维,真的是佩服。我只会在窗口中添加一个web的控件,然后打开某一个网页......还是研究了好久才成功的......
#22
sdta2021-05-25 19:02
设置一个网页为:所有指数, 关闭网页后,再打开网页,所有网页都为 所有指数
#23
吹水佬2021-05-25 21:37
页面载入完后自动选择“所有指数”
程序代码:
of = CREATEOBJECT("form1")
of.show(1)
RETURN

DEFINE CLASS form1 as form
    width = 1024
    height = 500
    ADD OBJECT WB as Olecontrol WITH left=0,top=0,width=1024,height=500,oleclass="Shell.Explorer.2",visible=.T.
    PROCEDURE Init
        this.WB.Silent = .T.
        this.WB.Navigate("http://score./1x2/2020255.htm")
    ENDPROC
    PROCEDURE WB.documentComplete(pdisp, url)
        IF (SYS(3095,pdisp) == SYS(3095,this))
            this.document.getElementById("sel_showType").value = 1
            this.document.parentWindow.execScript("changeShowType(1);", "JavaScript")
        ENDIF
    ENDPROC
ENDDEFINE
#24
hellofanghui2021-05-27 17:13
回复 23楼 吹水佬
真的非常感谢老师的指点
来到这个网站我真的非常很震撼!第一是因为看到这么厉害的高手,第二是因为看到这么厉害的高手竟然愿意为我们这些小学水平的人解惑!
非常感谢!我也多努力学习,虽然不能赶上老师的水平,最起码自己能提高一些。
#25
吹水佬2021-05-28 08:46
回复 24楼 hellofanghui
也是来论坛学到的
取之于论坛,用之于论坛而已
#26
radiofan2021-05-30 21:50
以下是引用吹水佬在2021-5-28 08:46:52的发言:

也是来论坛学到的
取之于论坛,用之于论坛而已

#27
hellofanghui2021-05-31 17:57
结帖感谢!第一次来这个论坛求助发帖,遇到了非常厉害的老师解答我的问题,心里非常感激/高兴/激动/,感谢老师费心解答我的问题!这几天一直仔细研究老师的程序代码,说实话,不好意思的讲,老师这么精炼的代码我得再仔细研究研究,不过不要紧,老师给了我启发,我慢慢研究慢慢学习,相信过过段时间我会慢慢进步的,再次感谢!!!
#28
hellofanghui2021-05-31 17:58
回复 25楼 吹水佬
结帖感谢!第一次来这个论坛求助发帖,遇到了非常厉害的老师解答我的问题,心里非常感激/高兴/激动/,感谢老师费心解答我的问题!这几天一直仔细研究老师的程序代码,说实话,不好意思的讲,老师这么精炼的代码我得再仔细研究研究,不过不要紧,老师给了我启发,我慢慢研究慢慢学习,相信过过段时间我会慢慢进步的,再次感谢!!!
1