具有Selenium和Node.js的递归Facebook页面Webscraper

时间:2019-06-08 13:07:04

标签: javascript node.js selenium recursion selenium-webdriver

我想做的是遍历Facebook页面ID数组,并从每个事件页面返回代码。不幸的是,我只得到数组中最后一个页面ID的代码,但是得到数组中元素的次数却不多。例如。当我在数组中有3个ID时,我得到的是最后一页ID的代码的3倍。

我已经尝试过异步等待,但没有成功。

预期结果将是每个页面的代码。 感谢您的帮助和示例。

//Looping through pages
pages.forEach(
  function(page) {
    //Creating URL
    let url = "https://mbasic.facebook.com/"+page+"?v=events";
    //Getting URL
    driver.get(url).then(
      function() {
        //Page loaded
        driver.getPageSource().then(function(result) {
          console.log(result);
        });
      }
    );
  }
);

1 个答案:

答案 0 :(得分:0)

当我使用python和selenium创建一个抓取器时,您遇到了同样的问题。 Facebook在手动更改URL上有对策,您不能更改它,即使它是自动的,我也一次又一次收到相同的数据。为了获得良好的结果,您需要访问脸书Graph API,该API提供了Facebook页面的完整对象及其分页URL。

或者我写它的第二种方式是我使用了硒浏览器自动化的单击按钮来向下滚动下一页。它不能像您键入时一样工作,我更喜欢使用图谱API