具有多个加载数据的PhantomJS页面抓取

PhantomJS page scraping with multiple load data

本文关键字:PhantomJS 抓取 数据 加载      更新时间:2023-09-26

我正在尝试与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();
});

该类别中只有 61 种产品,当按预期使用该网站时,无限滚动对我来说停在 61 种产品。你从哪里得到数字 110?