0

こんにちは私はYoutubeの結果からビデオのURLを抽出するためのphpスクリプトを作成しています。私はこれを持っています:

<?php
    error_reporting(1);

    function conseguir_codigo_url($url) {
        $dwnld = curl_init();
        curl_setopt($dwnld, CURLOPT_URL, $url);
        curl_setopt($dwnld, CURLOPT_HEADER, 0);
        //$userAgent = 'Mozilla/4.0 (compatible; MSIE 6.01; Windows NT 6.0)';
        curl_setopt($dwnld, CURLOPT_USERAGENT, $userAgent);
        curl_setopt($dwnld, CURLOPT_RETURNTRANSFER, true);

        $fuente_url = curl_exec($dwnld);
        curl_close($dwnld);
        return $fuente_url;
    }

    function extraer_atributo_elemento($fuente) {
        $file = new DOMDocument;

        if($file->loadHTML($fuente) and $file->validate()){

            echo "DOCUMENTO";

            $file->getElementById("search-results");

        }

     $codigo_url = conseguir_codigo_url("http://www.youtube.com/results?search_sort=video_date_uploaded&uni=3&search_type=videos&search_query=humor");
    extraer_atributo_elemento($codigo_url);
?>

問題は、使用できないことです。おそらくhtml5getelementbyidだと思います。これを解決するための提案がありますか。ソースを解析する必要がありますが、正規表現がわかりません。したがって、domdocumentが唯一の方法です。

4

1 に答える 1

1

なぜ使うの$file->validate()?IDで要素を抽出するだけの場合は、これを呼び出す必要はありません。また、呼び出す前にに設定DOMDocument::recoverすると、ネットから壊れたHTMLを解析するのに役立つ場合があります。trueloadHTML

于 2013-01-13T15:48:21.097 に答える