Php 如何在DOM解析器中解析ajax脚本?
我从中得到分数 我能够解析所有属性。但我无法解析时间 我曾经Php 如何在DOM解析器中解析ajax脚本?,php,Php,我从中得到分数 我能够解析所有属性。但我无法解析时间 我曾经 $homepages = file_get_html("http://sports.in.msn.com/football-world-cup-2014/south-africa-v-brazil/1597383"); $teama = $homepages->find('span[id="clock"]'); 请帮助我由于该特定站点正在动态加载值(通过AJAX请求),您无法在初始加载时真正解析值 <span id="
$homepages = file_get_html("http://sports.in.msn.com/football-world-cup-2014/south-africa-v-brazil/1597383");
$teama = $homepages->find('span[id="clock"]');
请帮助我由于该特定站点正在动态加载值(通过AJAX请求),您无法在初始加载时真正解析值
<span id="clock"></span> // this tends to be empty initial load
我的建议是,你也需要通过请求访问它,而不是将其删除,因为这是一个时间(当然,随着比赛的进行,这将不断变化,直到比赛结束)。或者你也可以使用他们的请求
$url = 'http://sports.in.msn.com/liveplayajax/SOCCERMATCH/match/gsm/en-in/1597383';
$contents = file_get_contents($url);
$data = json_decode($contents, true);
echo '<pre>';
print_r($data);
echo '</pre>';
您应该使用foreach获得90'
。考虑这个例子:
应该打印:
90'
我不认为这是节省时间的方法,因为它是动态加载的。在抓取站点时,
的初始节点值。然后在页面加载之后通过ajax加载值。也许如果你可以访问他们正在使用的api,也许这就是你争取时间的解决方案。也许你可以处理JSON值而不是删除站点。样品谢谢!以及如何单独打印[Min]=>90'如果我使用另一个匹配链接,我无法获得时间。我使用了mozilla firebug,并且能够在DOM中看到这样的情况
,如果我能够获得持续的比赛时间而不是评论时间,那就更好了。请在这方面帮助我。@user3354786是的,我可能可以在这方面帮助你,但也许你可以通过一个链接共享它,它也在同一页上吗?对于这场比赛http://sports.in.msn.com/football-world-cup-2014/argentina-v-slovenia/1630386
@user3354786您确定它的
?在那一页里面?我正在浏览器控制台中搜索,但找不到
$url = 'http://sports.in.msn.com/liveplayajax/SOCCERMATCH/match/gsm/en-in/1597383';
$contents = file_get_contents($url);
$data = json_decode($contents, true);
echo '<pre>';
print_r($data);
echo '</pre>';
[2] => Array
(
[Code] =>
[CommentId] => -1119368663
[CommentType] => manual
[Description] => FULL-TIME: South Africa 0-5 Brazil.
[Min] => 90'
[MinExtra] => (+3)
[View] =>
[ViewHint] =>
[ViewIndex] => 0
[EditKey] =>
[TrackingValues] =>
[AopValue] =>
)
foreach($data['Commentary']['CommentaryItems'] as $key => $value) {
if(stripos($value['Description'], 'FULL-TIME') !== false) {
echo $value['Min'];
break;
}
}