1


この質問を適切に行う方法がよくわかりません。

http://www.youtube-mp3.org/#v=9MzikThwfPEの形式のページのHTMLコンテンツを取得しようとしています。
ブラウザで開くと、YouTubeID[->ここはv=9MzikThwfPE]に対応するYouTubeビデオがmp3に変換されるのを待つ必要があります。その後、ダウンロードへのリンクが表示されます。
私がやろうとしているのは、このダウンロードリンクが存在するか、表示されているときにWebページのHTMLコンテンツを取得することです。
wgetでページを取得しようとすると、コンテンツが取得されません。ビデオが処理されると、コンテンツが取得されます。
wgetまたはcurlでこれを行うにはどうすればよいですか?
ありがとうございました。

4

1 に答える 1

0

私はphantomjsでこれを行うことができました。

@Barmarが述べたように、動的に生成されたHTMLコンテンツをwgetまたはcurlで取得することはできません。これらは、jsをサポートしていないか、jsエンジンをサポートしていないためです。

一方、phantomjsはjsをサポートしており、ブラウザのように動作できます。リクエストを投稿したり、Cookieを保存したり、Javaでサポートされているブラウザで実行できるその他の多くのこともできます。
これは、[ページをホストし、ダイナミックHTMLコンテンツを取得し、Cookieを保存する]ジョブを実行するサンプルのjsスクリプトです。

var page = require('webpage').create(),
system = require('system');

if (system.args.length < 2 || system.args.length > 2) {
    console.log('Usage: dl.js URL');
    phantom.exit(1);
}
else{ 
    var url=system.args[1];
    page.open(url,
          function (status) {
      if (status !== 'success') {
          console.log('Unable to access network');
      } else {
          window.setTimeout(function(){
              steps = page.content;
              console.log(steps);
              phantom.exit();
          },10000);
      }
      }); 
}

ありがとうございました。

于 2013-03-27T16:23:20.887 に答える