commit be14bf06c39178155e7ff39fb5d2a3b9a1b2e604 Author: PawelJa Date: Mon May 27 17:01:13 2019 +0100 init commit, get scores from html by loop diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..47dd21a --- /dev/null +++ b/.gitignore @@ -0,0 +1,117 @@ + +# Created by https://www.gitignore.io/api/java,intellij+all +# Edit at https://www.gitignore.io/?templates=java,intellij+all + +### Intellij+all ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +# JetBrains templates +**___jb_tmp___ + +### Intellij+all Patch ### +# Ignores the whole .idea folder and all .iml files +# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 + +.idea/ + +# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 + +*.iml +modules.xml +.idea/misc.xml +*.ipr + +# Sonarlint plugin +.idea/sonarlint + +### Java ### +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +# End of https://www.gitignore.io/api/java,intellij+all \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..9b54c80 --- /dev/null +++ b/src/Main.java @@ -0,0 +1,85 @@ +import entities.Score; +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.util.ArrayList; +import java.util.List; + + +public class Main { + + private static List scoreList = new ArrayList<>(); + + private static List getScoresByItemId(int itemId) { + try { + Document doc = Jsoup.connect("https://www.ceneo.pl/" + itemId).get(); + + getScoresFromPage(doc); + + + System.out.println("\n\n"); + + } catch (IOException e) { + } + return null; + } + + private static Object getTextFromElement(Element element, String cssQuery) { + try { + return element.selectFirst(cssQuery).text(); + } catch (NullPointerException e) { + return 0; + } + } + + private static void getScoresFromPage(Document document) { + + Elements products = document.select("li.review-box"); + for (Element product : products) { + System.out.println(getTextFromElement(product, "span.review-score-count")); +// System.out.println(product); +// Element score = product.selectFirst("span.review-score-count"); +// try { +// System.out.println("score: " + score.text()); +// } catch (NullPointerException e) { +// } +// +// Element description = product.selectFirst("p.product-review-body"); +// try { +// System.out.println("description: \n" + description.text()); +// } catch (NullPointerException e) { +// } +// +// try { +// Element advElement = product.selectFirst("div.pros-cell"); +// Elements advCounter = advElement.select("li"); +// System.out.println("adv: " + advCounter.size()); +// } catch (NullPointerException e) { +// System.out.println("adv: 0"); +// } +// +// try { +// Element dissadvElement = product.selectFirst("div.cons-cell"); +// Elements dissadvCounter = dissadvElement.select("li"); +// System.out.println("adv: " + dissadvCounter.size()); +// } catch (NullPointerException e) { +// System.out.println("dissadv: 0"); +// } + } + } + + public static void main(String[] args) throws IOException { + + int[] productList = new int[]{29362313, 44279952}; + for (Integer item : productList) { + getScoresByItemId(item); + } + + + } + + +} diff --git a/src/entities/Score.java b/src/entities/Score.java new file mode 100644 index 0000000..6908ae5 --- /dev/null +++ b/src/entities/Score.java @@ -0,0 +1,40 @@ +package entities; + +public class Score { + private float score; + private String description; + private int advantagesCounter; + private int dissadvantagesCounter; + + public float getScore() { + return score; + } + + public void setScore(float score) { + this.score = score; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public int getAdvantagesCounter() { + return advantagesCounter; + } + + public void setAdvantagesCounter(int advantagesCounter) { + this.advantagesCounter = advantagesCounter; + } + + public int getDissadvantagesCounter() { + return dissadvantagesCounter; + } + + public void setDissadvantagesCounter(int dissadvantagesCounter) { + this.dissadvantagesCounter = dissadvantagesCounter; + } +}