Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取站点';在返回JSON的GET之后返回HTML 介绍_Html_Json_Vba_Winhttprequest - Fatal编程技术网

获取站点';在返回JSON的GET之后返回HTML 介绍

获取站点';在返回JSON的GET之后返回HTML 介绍,html,json,vba,winhttprequest,Html,Json,Vba,Winhttprequest,主要的问题是,但我想在这个案例中有一些背景知识会有所帮助 好的,我想首先说,这实际上是我关于stackoverflow的第一个问题-我已经使用这个网站很多年了,我基本上从中了解到了关于编码的所有知识,但这也意味着我在知识上存在巨大差距——我使用的许多方法之所以被选择,是因为它们是我唯一知道的方法——如果你对我如何改进下面描述的过程有任何建议,请毫不犹豫地与我分享。我还想提前道歉,如果我的要求在任何方面都不清楚,我将尝试在任何此类情况下详细说明 方法 我正在尝试了解个别球员在欧洲冠军联赛中的表现(

主要的问题是,但我想在这个案例中有一些背景知识会有所帮助

好的,我想首先说,这实际上是我关于stackoverflow的第一个问题-我已经使用这个网站很多年了,我基本上从中了解到了关于编码的所有知识,但这也意味着我在知识上存在巨大差距——我使用的许多方法之所以被选择,是因为它们是我唯一知道的方法——如果你对我如何改进下面描述的过程有任何建议,请毫不犹豫地与我分享。我还想提前道歉,如果我的要求在任何方面都不清楚,我将尝试在任何此类情况下详细说明

方法 我正在尝试了解个别球员在欧洲冠军联赛中的表现(我实际上正在开发一个梦幻足球应用程序,我想我将来也会对这个项目有很多疑问)。我的资料来源是欧足联统计网站,例如“”。在那里,在中间,你可以选择“玩家”统计,并看到一个“表”(实际上它是一个带有列表的div)(默认情况下)关于给定的(单个)匹配的统计信息被呈现。在HTML中完全加载时,有两个div,一个用于匹配统计,一个用于总体,列表中的一些元素是隐藏的(例如基于玩家的位置),但所有元素都在那里。我感兴趣的部分如下所示:

<div id="matchTab" class="tab-panel rounded-down scrollable ui-tabs-panel ui-widget-content ui-corner-bottom" aria-labelledby="ui-id-7" role="tabpanel" aria-expanded="true" aria-hidden="false">
<div class="tab-content">
<div class="col-stats">
<ul class="goals-table stats">
<li style="display: list-item;">
Goals scored
<span class="value goals-scored">1</span>
</li>
<li style="display: none;">
<li class="bg-highlight" style="display: none;">
<li style="display: none;">
<li class="bg-highlight" style="display: none;">
</ul>
<ul class="attempts-table stats" style="display: block;">
<ul class="passes-attempt-table stats">
<ul class="fouls-table fouls-table-gk stats">
</div>
<div class="col-stats">
</div>
</div>
{"Players":null,"OverallStat":{"250021048":{"PlayerId":250021048,"TeamId":0,"MatchesPlayed":3,"MinutesPlayed":188,"GoalsScored":0,"GoalsConceded":0,"GoalsByMinute":0,"GoalsByAttempts":0,"TotalAttempts":2,"Assist":0,"Saves":0,"SavesOnAttempts":0,"SavesByMinutes":0,"FoulsCommitted":3,"FoulsCommittedByMinute":63,"FoulsSuffered":0,"FoulsSufferedByMinute":0,"FoulsPenalty":0,"FoulsSuffPenalty":0,"YellowCard":0,"RedCard":0,"Passes":149,"PassingDistribution":0,"PassesCompleted":68,"PassesAttempted":81,"PassingAccuracy":84,"Delivery":0,"Run":2,"AttempsOn":0,"AttempsOff":2,"Offside":1,"ShotHittingPost":0,"HittingBar":0,"ShotBlocked":2,"Corners":0,"Attacks":0,"BigChance":0,"BallPossession":0,"DistanceCovered":18655,"ClearancesAttempted":4,"ClearancesCompleted":3,"Blocked":0,"TackleCompleted":0,"TackleWrong":0}},"LastUpdatedCET":"05 November 2015, 11:47 CET","LastUpdateDay":5,"LastUpdateMonth":11,"LastUpdateYear":2015,"LastUpdateHour":11,"LastUpdateMinute":47}
仅返回边的主结构,而不返回“表”中的数据。因此,我使用FireBug,然后使用WireShark来检查在选择中更改玩家时传输的数据。其中一个数据包是关于球员、年龄、姓名等的一般统计数据——毫无用处。第二个是这样的:

GET /livecommon/match-centre/cup=1/season=2016/round=2000634/player=103697/overall.json?v=1448115572662
(v参数实际上是无用的,没有它也一样) 它实际上返回了一堆数据。很明显,它是JSON格式的,例如:

<div id="matchTab" class="tab-panel rounded-down scrollable ui-tabs-panel ui-widget-content ui-corner-bottom" aria-labelledby="ui-id-7" role="tabpanel" aria-expanded="true" aria-hidden="false">
<div class="tab-content">
<div class="col-stats">
<ul class="goals-table stats">
<li style="display: list-item;">
Goals scored
<span class="value goals-scored">1</span>
</li>
<li style="display: none;">
<li class="bg-highlight" style="display: none;">
<li style="display: none;">
<li class="bg-highlight" style="display: none;">
</ul>
<ul class="attempts-table stats" style="display: block;">
<ul class="passes-attempt-table stats">
<ul class="fouls-table fouls-table-gk stats">
</div>
<div class="col-stats">
</div>
</div>
{"Players":null,"OverallStat":{"250021048":{"PlayerId":250021048,"TeamId":0,"MatchesPlayed":3,"MinutesPlayed":188,"GoalsScored":0,"GoalsConceded":0,"GoalsByMinute":0,"GoalsByAttempts":0,"TotalAttempts":2,"Assist":0,"Saves":0,"SavesOnAttempts":0,"SavesByMinutes":0,"FoulsCommitted":3,"FoulsCommittedByMinute":63,"FoulsSuffered":0,"FoulsSufferedByMinute":0,"FoulsPenalty":0,"FoulsSuffPenalty":0,"YellowCard":0,"RedCard":0,"Passes":149,"PassingDistribution":0,"PassesCompleted":68,"PassesAttempted":81,"PassingAccuracy":84,"Delivery":0,"Run":2,"AttempsOn":0,"AttempsOff":2,"Offside":1,"ShotHittingPost":0,"HittingBar":0,"ShotBlocked":2,"Corners":0,"Attacks":0,"BigChance":0,"BallPossession":0,"DistanceCovered":18655,"ClearancesAttempted":4,"ClearancesCompleted":3,"Blocked":0,"TackleCompleted":0,"TackleWrong":0}},"LastUpdatedCET":"05 November 2015, 11:47 CET","LastUpdateDay":5,"LastUpdateMonth":11,"LastUpdateYear":2015,"LastUpdateHour":11,"LastUpdateMinute":47}
这就是每当球员被更换时都会得到的响应,无论选择的是单场比赛统计还是整体比赛统计(当然,不必在网站上,不需要cookies,只需“”即可获得统计信息) 问题是,这些都是总体统计数据。我可以理解有一些代码可以计算单个匹配的统计信息(实际上我自己也可以这样做,每次匹配后刷新数据,计算单个匹配的统计信息)。尽管如此,他们倾向于不定期地更新统计数据,所以我更希望能够从单个比赛中检索统计数据。因此:

问题: 鉴于上述情况,是否有一种方法可以在使用WinHTTPRequest获取另一个GET for player统计数据之后获取站点的html?如果没有,最好的办法是什么?我确实尝试过使用InternetExplorer对象,但根本无法产生任何结果(事实上,我在工作中也遇到了同样的问题,我需要访问我们公司的网站-我甚至无法检查readystate,因为网站已经运行,但我想这是另一个问题的主题)


提前感谢,如果我写的东西不清楚,请再次道歉。

数据是通过ajax在函数
loadPlayerMatchStat
loadMatchStat
中加载的。检查这些函数,您将看到ajax调用的url由函数
getPlayerFeedPaths
getFeedPaths
组成。提要路径函数可以提供以下json文件
players.match.json、teams.match.json、totall.json、homeline.json
data.html
。因此,可以模拟这些提要路径函数,并为您需要的数据组成url,并获得相应的json数据。要解析json,您可以使用VBJSON,它是VBA json项目的VB6改编版本,可以是fuound。我明白了,似乎还涉及到其他一些“东西”。正如我所说,我的知识确实存在巨大的差距,而整个“网站”就是其中之一。然而,这是一个学习的好机会。非常感谢你的帮助!数据通过ajax加载到函数
loadPlayerMatchStat
loadMatchStat
中。检查这些函数,您将看到ajax调用的url由函数
getPlayerFeedPaths
getFeedPaths
组成。提要路径函数可以提供以下json文件
players.match.json、teams.match.json、totall.json、homeline.json
data.html
。因此,可以模拟这些提要路径函数,并为您需要的数据组成url,并获得相应的json数据。要解析json,您可以使用VBJSON,它是VBA json项目的VB6改编版本,可以是fuound。我明白了,似乎还涉及到其他一些“东西”。正如我所说,我的知识确实存在巨大的差距,而整个“网站”就是其中之一。然而,这是一个学习的好机会。非常感谢你的帮助!