我是PHP的初学者,并且正在研究一个脚本,该脚本可以从YouTube网站上提取标题/说明/标签(或关键字)。例如,以任何YouTube页面(例如http://www.youtube.com/watch?v=yADOdeZTD9c)为例。它的HTML代码包含

<meta name="keywords" content="nirvana, unplugged, performing, tocando, cantando, come, as, you, are, Come, As, You, Are, nevermind, live, en, vivo, 1992, 1993, acoustic, acustica, complet...">

我的代码能够从上述行中提取关键字。该代码的相关部分如下:
            $meta_elements = $pageDOM->getElementsByTagName('meta');
            foreach ($meta_elements as $meta_element) {
                if (strtolower($meta_element->getAttribute('name')) == 'description')
                {
                    $aValues['description'] = $meta_element->getAttribute('content');

                    echo $meta_element->getAttribute('content');

                }
            }

我试图修改它以提取类别信息,但由于无法以与关键字或描述相同的方式提取类别名称,因此无法执行此操作。

我认为网站的HTML代码中可以提取类别的部分是:
Category:
</h4>
    <p id="eow-category"><a href="/music">Music</a></p>

非常感谢有关如何提取“音乐”(大小写无关)的任何建议。

谢谢 :)

最佳答案

当您可以通过YouTube Data API获得所需信息时,为什么要从YouTube.com上抓取页面。您可以在不到一分钟的时间内获取类别信息以及几乎所有内容。您甚至不需要PHP。只需在控制台中运行以下示例代码:

function youtubeDataCallback(json){
    console.log(json);
    alert(json.data.category);
}
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "http://gdata.youtube.com/feeds/api/videos/yADOdeZTD9c?v=2&alt=jsonc&callback=youtubeDataCallback";
document.getElementsByTagName("head")[0].appendChild(s);

PHP代码要简单得多。您只需要2-3行代码。

话虽如此,这给你什么?
$pageDOM->getElementById("eow-category")->getElementsByTagName("a")->item(0)->nodeValue

10-08 13:38
查看更多