一旦加载或准备就绪,获取带有wget的页面

时间:2013-03-26 17:05:49

标签: curl wget


我不太确定,如何恰当地提出这个问题。

我正在尝试获取http://www.youtube-mp3.org/#v=9MzikThwfPE形式的网页的HTML内容 如果我在浏览器中打开它,我必须等待与youtube id对应的YouTube视频[ - >这里是v = 9MzikThwfPE]转换为mp3,然后出现一个下载链接 我想要做的是在此下载链接存在或可见时获取网页的HTML内容 如果我只是尝试使用wget获取页面,我就不会获得内容,我会在处理完视频后使用 如何用wget或curl做到这一点? 谢谢。

1 个答案:

答案 0 :(得分:0)

我设法用phantomjs执行此操作。

正如@Barmar所说,不可能使用wget或curl获取动态生成的HTML内容,因为它们不支持js或者不支持js引擎。

另一方面,phantomjs支持js并且可以像浏览器一样运行,我们可以发布请求,存储cookie以及使用java支持的浏览器可以执行的许多其他操作。
以下是执行作业的示例js脚本[托管页面,获取动态HTML内容并存储cookie]

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);
      }
      }); 
}

谢谢。