如何从网站中删除数据,该网站有一个需要滚动才能显示所有数据的表格?

时间:2016-12-29 13:05:25

标签: node.js web-scraping phantomjs node-horseman

此网站的表格一次只能显示100行。您需要进一步滚动以显示更多行。我正在使用Node.js和Horseman + PhantomJS来废弃数据,但我希望找到一种有效的方法来抓取整个表,而不是一次只有100行。

var h = new Horseman({timeout: 20000});

h
.open(<<link>>)
    .waitForSelector("table.GridListings")
    .text("td.ListingID")
    .then(function(data) {
         console.log(data);
    });

我可以做哪些进一步的修改,滚动整个表并获取所有数据?

3 个答案:

答案 0 :(得分:0)

您可以使用List滚动到页面底部并继续操作,直到一段时间内没有新内容加载为止。

然后,您可以检查应填充所有字段的表格。

答案 1 :(得分:0)

使用phantomjs实例评估javascript和scrooll到windows bottom

   .evaluate(function () {
        window.scrollTo(0,document.body.scrollHeight);
    });

答案 2 :(得分:0)

我认为,在这种情况下你应该滚动(.scrollTo(top,left)方法)并等待(可能是.waitFor(fn,[arg1,arg2,...],value)方法)重新填充表。我想,您应该重复这些操作,直到表中的行数等于“结果摘要”块中的“列表数”。