我正在尝试从此页面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]时,我什么都没得到。
答案 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。