无法从其他页面获得准确的值

时间:2015-10-20 09:01:26

标签: php

我正在尝试从此页面http://developer.android.com/training/basics/data-storage/files.html获取分数表。我这样做

SELECT *
 FROM (
  SELECT regno,eventb,timec,rfid from  @tmpTable2
 ) AS SourceTable
 PIVOT
(
max(timec)
FOR eventb
IN (
[Veh Reg Time],[Fitness ok time],[RFID Issue time],[MG-IN],[WB IN],
[MG-OUT],      [WB OUT]
)
) AS PivotTableAlias

当我尝试显示阵列$ bundes时,我会这样做:

$bundes = file('http://www.skysports.com/football/competitions/bundesliga/table');

我尝试显示的代码显示如下:

echo '<pre>', print_r($bundes), '</pre>';

这是表的第一行。现在我可以显示$ bundes [1060]并获得拜耳慕尼黑的输出但我如何从$ bundes [1062]获得值,值是9,9,0,0,29,4,25和27?我需要在[1437] => [1022] => German Bundesliga 2015/16 # Team Pl W D L F A GD Pts Last 6 1 [1059] => [1060] => Bayern Munich [1061] => [1062] => 9 9 0 0 29 4 25 27 [1072] => [1073] => [1074] => 中显示每个值 当我试图回应$ bundes [1062]时,我什么都没得到。

1 个答案:

答案 0 :(得分:0)

提取数据的更可靠方法是使用DOM manipulation classes执行以下操作:

$doc = new \DOMDocument();
@$doc->loadHTMLFile('http://www.skysports.com/football/competitions/bundesliga/table');

$xpath = new \DOMXPath($doc);
$rows = $xpath->query('//tbody/tr');

$data = [];

foreach ($rows as $i => $row) {
    $columns = $xpath->query('td', $row);

    foreach ($columns as $column) {
        $data[$i][] = trim($column->textContent);
    }
}

print_r($data);

这给了你:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => Bayern Munich
            [2] => 9
            [3] => 9
            [4] => 0
            [5] => 0
            [6] => 29
            [7] => 4
            [8] => 25
            [9] => 27
            [10] => 
        )
...

关于Dagon的评论,任何条款都不能禁止抓取和提取数据(只要您以合理的速度执行此操作,不会影响网站的性能)。 使用条款&amp;但是,版权法规定了您能够做什么,不能对被抓取的内容做什么(例如,重新发布)。

  

网页抓取可能违反某些网站的使用条款。这些术语的可执行性尚不清楚(请参阅"FAQ about linking – Are website terms of use binding contracts?"

     

- 维基百科,Web scraping: Legal issues

顺便说一句,页面robots meta tag确实允许使用INDEX。

相关问题