使用多个加载数据进行PhantomJS页面抓取

时间:2014-12-26 18:02:39

标签: javascript ajax web-scraping phantomjs

我正在尝试使用PhantomJS这页:http://www.avrilgau.com/fr/5-chaussures。 目的是获得所有产品的链接。 问题是当我向下滚动时加载新数据。每当我向下滚动时,12个新项目都会添加到document.querySelectorAll(“#content> ul> li> div> div a.img”)。

我发现HTML代码中隐藏了一个表单。当我提交这个表格时,我成功地获得了61个元素,共计110个。

如何获取所有产品的链接?

到目前为止我的代码:

var system  = require("system");
var fs      = require("fs");
var path = 'productLinks.txt';
var url = "http://www.avrilgau.com/fr/5-chaussures";
var page = require('webpage').create();
page.onConsoleMessage = function(msg) {
 console.log(msg);
};

page.open(url, function (status) {

var content = page.evaluate(function()
 {
  var allUrl=[];

  var tempNodeArray =document.querySelectorAll("#content > ul > li > div > div a.img");

  for (var i = 0; i < tempNodeArray.length; i++) {
    allUrl.push((tempNodeArray[i]).href);
  };

  return allUrl.join("\n")+"\n";


 });

console.log(content);
fs.write(path, content, 'a');

phantom.exit();

});

1 个答案:

答案 0 :(得分:0)

该类别中只有61种产品,当我按照预期使用网站时,infinityscroll停止在61种产品上。你在哪里得到110号?