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


PHP scraping text from a specific class on another website

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

<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和一般的编码都很陌生,但我很快就学会了,我正在努力推动自己。非常感谢您的宝贵时间!

您应该使用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;
}