使用PHP从网站上抓取数据

时间:2012-02-07 07:26:50

标签: php mysql regex curl scrape

我正在尝试将信息收集到一个文本文件中,稍后我将上传到MySQL数据库。我正在努力收集所有PS3奖杯信息。我将使用此网站:http://www.ps3trophies.org/games/psn/1/来收集信息。我需要做的是在每个页面上进入每个游戏,获取游戏名称,每个奖杯以及有关它们的所有信息。感谢您提供给我的任何信息。

3 个答案:

答案 0 :(得分:4)

我建议使用Simple HTML DOM Parser来执行此操作。您可以使用jQuery / CSS选择器来导航页面上的元素。你可以这样做:

$html = file_get_html('http://www.ps3trophies.org/games/psn/1/');
$otherPages = $html->find('a[href^=/games/psn/]'); // this will get the links for the 7 other pages

然后你还可以为所有游戏页面构建一个选择器,并加载它们。阅读解析器文档,了解您可以做的所有事情。

答案 1 :(得分:2)

简而言之,您需要使用PHP函数get_file_contents()

像这样:

for ($i = 0; i<number_of_pages; i++){
    $url = 'http://www.ps3trophies.org/games/psn/' . i;
    $html = get_file_contents($url);

    //do a regex search on $html to pinpoint your data

    //save it
}

现在您可以使用$ html变量并结合正则表达式来查找所需的数据。

答案 2 :(得分:0)

选中此项会为您提供预期的输出

<?php
error_reporting(E_ERROR | E_PARSE);
$dom = new DOMDocument();
$dom->loadHTMLFile('http://www.ps3trophies.org/games/psn/1/');
$xml = simplexml_import_dom($dom);
$links = $xml->xpath('//table/tr/td/a');
for($i=30;$i<count($links);$i++): 
?>
<a target="_blank" href="http://www.ps3trophies.org<?php echo $links[$i]['href']; ?>"><?php echo $links[$i]['href']; ?></a><br/>
<?php
endfor;
?>