Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用phantomjs刮取站点?_Javascript_Phantomjs - Fatal编程技术网

Javascript 如何使用phantomjs刮取站点?

Javascript 如何使用phantomjs刮取站点?,javascript,phantomjs,Javascript,Phantomjs,我正试图抓取一个网站和一个iTunes促销代码。经过一段时间的实验,我发现使用JavaScript控制台可以很容易地获得代码: 不久之后,我用PhantomJS尝试了以下方法: var page = require('webpage').create(); page.open('http://www.air1.com/music/free-songs.aspx', function () { code = page.evaluate(function() { __

我正试图抓取一个网站和一个iTunes促销代码。经过一段时间的实验,我发现使用JavaScript控制台可以很容易地获得代码:

不久之后,我用PhantomJS尝试了以下方法:

 var page = require('webpage').create();
 page.open('http://www.air1.com/music/free-songs.aspx', function () {
     code = page.evaluate(function() {
         __doPostBack('ctl00$cphRight1$itunesPromo$lbGetDownloadCode','');
         return document.getElementById('ctl00_cphRight1_itunesPromo_lblItunesCodes').innerText;
     });

     console.log('Code: ' + code);
     phantom.exit();
 });

它不像我想象的那样工作-
code
返回为空。

在调用加载它和调用获取内部文本之间,弹出窗口可能不在DOM中。试着在中间停顿一下

var page = require('webpage').create();
page.open('http://www.air1.com/music/free-songs.aspx', function (status) {

  if (status !== 'success') {
    console.log('error');
    phantom.exit();
    return;
  }

  page.evaluate(function() {
    __doPostBack('ctl00$cphRight1$itunesPromo$lbGetDownloadCode','');
  });

  setTimeout(function() {
   var code = page.evaluate(function() {
     return document.getElementById('ctl00_cphRight1_itunesPromo_lblItunesCodes').innerText;
   });
   console.log('code = ' + code);
   phantom.exit();
  }, 1000);
});

在调用加载和调用获取内部文本之间,弹出窗口可能不在DOM中。试着在中间停顿一下

var page = require('webpage').create();
page.open('http://www.air1.com/music/free-songs.aspx', function (status) {

  if (status !== 'success') {
    console.log('error');
    phantom.exit();
    return;
  }

  page.evaluate(function() {
    __doPostBack('ctl00$cphRight1$itunesPromo$lbGetDownloadCode','');
  });

  setTimeout(function() {
   var code = page.evaluate(function() {
     return document.getElementById('ctl00_cphRight1_itunesPromo_lblItunesCodes').innerText;
   });
   console.log('code = ' + code);
   phantom.exit();
  }, 1000);
});