PHP从另一个网站上的特定类中抓取文本

时间:2014-06-09 20:52:10

标签: php web-scraping file-get-contents

我想创建一个脚本来自动获取维基百科页面上特定类中的文本。例如,我想从他的维基百科页面获得音乐家Avicii的真名(Tim Bergling)。从google的inspect元素中我发现他的名字存储在一个名为“nickname”的类中:

<td class="nickname">Tim Bergling</td>

我想获取昵称类的内容。我找到了一些帮助我解决一些代码的线程,但我无法让它正常工作。以下是我到目前为止的情况:

<?php

$wiki= file_get_contents("http://en.wikipedia.org/wiki/Avicii");
preg_match("/\<td class\=\"nickname\"\>(.*?)\<\/td\>/",$wiki,$n);
print $n; 

?>

最终,我希望将此名称发送到我的网站上的特定类,以便显示它。现在,我只是满足于打印它。谢谢:))

编辑:我应该澄清一下我对PHP和编码非常陌生,但是我已经快速完成了它并且我正试图推动自己。我非常感谢你的时间!

1 个答案:

答案 0 :(得分:1)

您应该使用DOMDocument课程而不是preg_match,请尝试:

$html = file_get_contents("your url");
$DOM = new DOMDocument();
$DOM->loadHTML($html);
$finder = new DomXPath($DOM);
$classname = 'nickname';
$nodes = $finder->query("//*[contains(@class, '$classname')]");
foreach ($nodes as $node) {
  echo $node->nodeValue;
}