解析维基百科的实时数据流

时间:2017-07-17 15:40:23

标签: java parsing real-time influxdb wikipedia-api

我想

  1. 检索
  2. 解析某些内容和
  3. 实时数据流上写入数据库,维基百科在此提供有关最近更改的信息:https://stream.wikimedia.org/v2/stream/recentchange
  4. 我研究并考虑过Jsoup,但是,看起来Jsoup无法处理实时流。我将如何在Java中实现这一目标?

    最终,我的目标是在流继续流动的同时解析并将我需要的内容放入trendxDB数据库。

1 个答案:

答案 0 :(得分:0)

打开HTTPS连接,以UTF-8解码java.io.BufferedReader包裹连接的输入流,并在循环中逐行读取输入。然后根据各自的内容解析行。 iddata行似乎在前缀后面包含JSON,因此您可以使用您选择的JSON库。 然后将过滤后的数据写入数据库。

这是仅使用JDK的简化示例:

URLConnection conn = new URL
    ("https://stream.wikimedia.org/v2/stream/recentchange").openConnection();

BufferedReader reader = new BufferedReader
    (new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));

String line;

while ((line = reader.readLine()) != null) {
    // 1. parse interesting lines according to
    //    their prefix event, id, or data
    // 2. write filtered data to the database
}