【问题标题】:Scrape data from a website with PHP [closed]使用 PHP 从网站上抓取数据 [关闭]
【发布时间】:2012-02-28 15:44:53
【问题描述】:

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

【问题讨论】:

  • 关于抓取的问题已经在这里被问了一千次了。此外,本网站是供人们针对他们在代码中遇到的特定问题寻求帮助的,而不是为了提供简要说明并要求某人为您编写代码。
  • 现在正在尝试使用 ScraperWiki,但遇到了一些麻烦。

标签: php mysql regex curl scrape


【解决方案1】:

我建议使用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

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

【讨论】:

  • 这就是我要找的。我之前走错方向了,谢谢。
  • 你的答案比我的酷;P
【解决方案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 变量,结合正则表达式来查找您需要的数据。

【讨论】:

  • 非常有帮助,谢谢!
【解决方案3】:

检查一下会给你预期的输出

<?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;
?>

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多