听到网络爬虫,有很多专案都是建立在 python 上面,在文字处理分析上, python 有很强大的套件可以使用,然而随着 node.js 的发展越来越广泛,也有许多因应的套件产生,今天将会介绍利用 FB 提供的 Graph API 来爬留言版。

本文并非会有教学范例档,仅会针对 FB 提供的 Graph API 做简单的范例。 此处的范例会利用 ES6 的 template strings 语法。

最近 FB 推出了可以回复他人的功能,因此留言有可能会有巢状情形,但可以观察到的是,目前 FB 的机制就是至多一层的回复。因此简单的架构如下:

Graph API 在留言版其实是公开,只要给定 URL 就可以拿到该网址的留言, 这边要注意的是需要确定该 URL 是 OG:URL 的参数给 FB 才拿的到。

若此处没有加上 &limit 的话,会拿到比较少的数量。 加上 &filter=stream 参数,则会一并将回复状态的留言拿回来。 因为在此记录部落格使用,在实作上并不会加上 &filter=stream 这个参数,以免拿第二层的时候重复还需要做额外处理。

在实作上因为无法透过第一层的 API 得到是否有无第二层留言,因此若要完整的拿取全部的留言,则需要将全部的 id 跑过一次才可以得到完整的结果。