package com.pidorashque;
import com.google.common.collect.ArrayTable;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class App
{
final Document doc
= Jsoup.
parse(new URL("http://p...content-available-to-author-only...n.com/raw.php?i=E7BGzemF"),
10000); final Elements rows = doc.select("table tr");
final int rowCount = 5;
final List<Element> rows1 = rows.subList(1, rows.size());
final List
<ArrayTable
<Integer,
String, String
>> tables
= IntStream.
range(0, rows1.
size() / rowCount
) .mapToObj(i -> {
final int start = i * rowCount;
final List<Element> subRows = rows1.subList(start, start + rowCount);
final List<String> columnKeys = subRows.get(0).children().stream()
.filter(e -> e.tagName().equals("td") && !e.attr("colspan").equals("5"))
.filter(s -> !s.matches("\\W+"))
.distinct()
.collect(Collectors.toList());
final ArrayTable
<Integer,
String, String
> table
= ArrayTable.
create(IntStream.
range(1, rowCount
).
boxed().
collect(Collectors.
toList()), columnKeys
);
IntStream.range(1, subRows.size()).forEach(r -> {
final List<Element> columns = subRows.get(r).children().stream()
.filter(e -> e.tagName().equals("td") && !e.attr("colspan").equals("5") && !e.text().matches("\\W+"))
.limit(columnKeys.size())
.collect(Collectors.toList());
IntStream.range(0, columns.size()).forEach(c -> table.set(r - 1, c, columns.get(c).text()));
});
return table;
})
.collect(Collectors.toList());
}
}
cGFja2FnZSBjb20ucGlkb3Jhc2hxdWU7CgppbXBvcnQgY29tLmdvb2dsZS5jb21tb24uY29sbGVjdC5BcnJheVRhYmxlOwppbXBvcnQgb3JnLmpzb3VwLkpzb3VwOwppbXBvcnQgb3JnLmpzb3VwLm5vZGVzLkRvY3VtZW50OwppbXBvcnQgb3JnLmpzb3VwLm5vZGVzLkVsZW1lbnQ7CmltcG9ydCBvcmcuanNvdXAuc2VsZWN0LkVsZW1lbnRzOwoKaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CmltcG9ydCBqYXZhLm5ldC5VUkw7CmltcG9ydCBqYXZhLnV0aWwuTGlzdDsKaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uQ29sbGVjdG9yczsKaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uSW50U3RyZWFtOwoKcHVibGljIGNsYXNzIEFwcCAKewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oIFN0cmluZ1tdIGFyZ3MgKSB0aHJvd3MgSU9FeGNlcHRpb24gewogICAgICAgIGZpbmFsIERvY3VtZW50IGRvYyA9IEpzb3VwLnBhcnNlKG5ldyBVUkwoImh0dHA6Ly9wLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5uLmNvbS9yYXcucGhwP2k9RTdCR3plbUYiKSwgMTAwMDApOwogICAgICAgIGZpbmFsIEVsZW1lbnRzIHJvd3MgPSBkb2Muc2VsZWN0KCJ0YWJsZSB0ciIpOwoKICAgICAgICBmaW5hbCBpbnQgcm93Q291bnQgPSA1OwogICAgICAgIGZpbmFsIExpc3Q8RWxlbWVudD4gcm93czEgPSByb3dzLnN1Ykxpc3QoMSwgcm93cy5zaXplKCkpOwogICAgICAgIGZpbmFsIExpc3Q8QXJyYXlUYWJsZTxJbnRlZ2VyLCBTdHJpbmcsIFN0cmluZz4+IHRhYmxlcyA9IEludFN0cmVhbS5yYW5nZSgwLCByb3dzMS5zaXplKCkgLyByb3dDb3VudCkKICAgICAgICAgICAgICAgIC5tYXBUb09iaihpIC0+IHsKICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgc3RhcnQgPSBpICogcm93Q291bnQ7CiAgICAgICAgICAgICAgICAgICAgZmluYWwgTGlzdDxFbGVtZW50PiBzdWJSb3dzID0gcm93czEuc3ViTGlzdChzdGFydCwgc3RhcnQgKyByb3dDb3VudCk7CgogICAgICAgICAgICAgICAgICAgIGZpbmFsIExpc3Q8U3RyaW5nPiBjb2x1bW5LZXlzID0gc3ViUm93cy5nZXQoMCkuY2hpbGRyZW4oKS5zdHJlYW0oKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihlIC0+IGUudGFnTmFtZSgpLmVxdWFscygidGQiKSAmJiAhZS5hdHRyKCJjb2xzcGFuIikuZXF1YWxzKCI1IikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKEVsZW1lbnQ6OnRleHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHMgLT4gIXMubWF0Y2hlcygiXFxXKyIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRpc3RpbmN0KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0KENvbGxlY3RvcnMudG9MaXN0KCkpOwoKICAgICAgICAgICAgICAgICAgICBmaW5hbCBBcnJheVRhYmxlPEludGVnZXIsIFN0cmluZywgU3RyaW5nPiB0YWJsZSA9IEFycmF5VGFibGUuY3JlYXRlKEludFN0cmVhbS5yYW5nZSgxLCByb3dDb3VudCkuYm94ZWQoKS5jb2xsZWN0KENvbGxlY3RvcnMudG9MaXN0KCkpLCBjb2x1bW5LZXlzKTsKCiAgICAgICAgICAgICAgICAgICAgSW50U3RyZWFtLnJhbmdlKDEsIHN1YlJvd3Muc2l6ZSgpKS5mb3JFYWNoKHIgLT4gewogICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBMaXN0PEVsZW1lbnQ+IGNvbHVtbnMgPSBzdWJSb3dzLmdldChyKS5jaGlsZHJlbigpLnN0cmVhbSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihlIC0+IGUudGFnTmFtZSgpLmVxdWFscygidGQiKSAmJiAhZS5hdHRyKCJjb2xzcGFuIikuZXF1YWxzKCI1IikgJiYgIWUudGV4dCgpLm1hdGNoZXMoIlxcVysiKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubGltaXQoY29sdW1uS2V5cy5zaXplKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoQ29sbGVjdG9ycy50b0xpc3QoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIEludFN0cmVhbS5yYW5nZSgwLCBjb2x1bW5zLnNpemUoKSkuZm9yRWFjaChjIC0+IHRhYmxlLnNldChyIC0gMSwgYywgY29sdW1ucy5nZXQoYykudGV4dCgpKSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jb2xsZWN0KENvbGxlY3RvcnMudG9MaXN0KCkpOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odGFibGVzKTsKICAgIH0KfQo=
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