fork download
  1. package com.pidorashque;
  2.  
  3. import com.google.common.collect.ArrayTable;
  4. import org.jsoup.Jsoup;
  5. import org.jsoup.nodes.Document;
  6. import org.jsoup.nodes.Element;
  7. import org.jsoup.select.Elements;
  8.  
  9. import java.io.IOException;
  10. import java.net.URL;
  11. import java.util.List;
  12. import java.util.stream.Collectors;
  13. import java.util.stream.IntStream;
  14.  
  15. public class App
  16. {
  17. public static void main( String[] args ) throws IOException {
  18. final Document doc = Jsoup.parse(new URL("http://p...content-available-to-author-only...n.com/raw.php?i=E7BGzemF"), 10000);
  19. final Elements rows = doc.select("table tr");
  20.  
  21. final int rowCount = 5;
  22. final List<Element> rows1 = rows.subList(1, rows.size());
  23. final List<ArrayTable<Integer, String, String>> tables = IntStream.range(0, rows1.size() / rowCount)
  24. .mapToObj(i -> {
  25. final int start = i * rowCount;
  26. final List<Element> subRows = rows1.subList(start, start + rowCount);
  27.  
  28. final List<String> columnKeys = subRows.get(0).children().stream()
  29. .filter(e -> e.tagName().equals("td") && !e.attr("colspan").equals("5"))
  30. .map(Element::text)
  31. .filter(s -> !s.matches("\\W+"))
  32. .distinct()
  33. .collect(Collectors.toList());
  34.  
  35. final ArrayTable<Integer, String, String> table = ArrayTable.create(IntStream.range(1, rowCount).boxed().collect(Collectors.toList()), columnKeys);
  36.  
  37. IntStream.range(1, subRows.size()).forEach(r -> {
  38. final List<Element> columns = subRows.get(r).children().stream()
  39. .filter(e -> e.tagName().equals("td") && !e.attr("colspan").equals("5") && !e.text().matches("\\W+"))
  40. .limit(columnKeys.size())
  41. .collect(Collectors.toList());
  42. IntStream.range(0, columns.size()).forEach(c -> table.set(r - 1, c, columns.get(c).text()));
  43. });
  44. return table;
  45. })
  46. .collect(Collectors.toList());
  47.  
  48. System.out.println(tables);
  49. }
  50. }
  51.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:24: error: illegal start of expression
                .mapToObj(i -> {
                             ^
Main.java:24: error: illegal start of expression
                .mapToObj(i -> {
                               ^
Main.java:24: error: ';' expected
                .mapToObj(i -> {
                                ^
Main.java:29: error: illegal start of expression
                            .filter(e -> e.tagName().equals("td") && !e.attr("colspan").equals("5"))
                                       ^
Main.java:30: error: ')' expected
                            .map(Element::text)
                                        ^
Main.java:30: error: illegal start of expression
                            .map(Element::text)
                                         ^
Main.java:30: error: ';' expected
                            .map(Element::text)
                                              ^
Main.java:31: error: illegal start of expression
                            .filter(s -> !s.matches("\\W+"))
                                       ^
Main.java:40: error: illegal start of expression
                                .filter(e -> e.tagName().equals("td") && !e.attr("colspan").equals("5") && !e.text().matches("\\W+"))
                                           ^
Main.java:45: error: illegal start of type
                })
                 ^
Main.java:45: error: ';' expected
                })
                  ^
Main.java:46: error: invalid method declaration; return type required
                .collect(Collectors.toList());
                 ^
Main.java:46: error: <identifier> expected
                .collect(Collectors.toList());
                                          ^
Main.java:46: error: ';' expected
                .collect(Collectors.toList());
                                           ^
Main.java:46: error: illegal start of type
                .collect(Collectors.toList());
                                            ^
Main.java:46: error: <identifier> expected
                .collect(Collectors.toList());
                                             ^
Main.java:46: error: ';' expected
                .collect(Collectors.toList());
                                              ^
Main.java:48: error: illegal start of type
        System.out.println(tables);
              ^
Main.java:48: error: ';' expected
        System.out.println(tables);
                  ^
Main.java:48: error: invalid method declaration; return type required
        System.out.println(tables);
                   ^
Main.java:48: error: <identifier> expected
        System.out.println(tables);
                                 ^
Main.java:50: error: class, interface, or enum expected
}
^
22 errors
stdout
Standard output is empty