从无限滚动页面(Facebook)检索HTML内容

时间:2018-10-17 15:14:56

标签: java facebook http get infinite-scroll

我想从动态网页中检索HTML数据,例如公共Facebook页面:https://www.facebook.com/bbcnews/(公共内容,无需登录)

例如,在此页面中,我们有无限的滚动,我们必须转到页面底部才能加载更多帖子。

我当前的代码在这里:

URL url = new URL("https://www.facebook.com/bbcnews/");

BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
BufferedWriter writer = new BufferedWriter(new FileWriter("path"));

while ((line = reader.readLine()) != null) {
    writer.write(line);
}

此代码仅检索页面的第一部分。

如何通过无限滚动来检索网页的更多内容?

谢谢。

1 个答案:

答案 0 :(得分:0)

您不会通过简单的BufferedReader来查看HTTP流来实现这一点。打开浏览器控制台,然后到达页面末尾。您会看到向此URL触发了XHR调用(异步请求):

https://www.facebook.com/pages_reaction_units

带有很多的隐秘请求参数。您需要在Java代码中执行这种调用。由于某些原因,它被混淆了。从头开始完成它似乎不是一个好方法。

最好使用an API provided by Facebook(也许是API Graph)。