diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..c1de63f --- /dev/null +++ b/.classpath @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..a340c10 --- /dev/null +++ b/.cvsignore @@ -0,0 +1 @@ +work \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.gitignore diff --git a/.project b/.project new file mode 100644 index 0000000..35fb56e --- /dev/null +++ b/.project @@ -0,0 +1,18 @@ + + + ScrapeRecipe + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + net.sf.eclipse.tomcat.tomcatnature + + diff --git a/.tomcatplugin b/.tomcatplugin new file mode 100644 index 0000000..523cfbe --- /dev/null +++ b/.tomcatplugin @@ -0,0 +1,13 @@ + + + / + work + false + true + false + true + + + false + /ScrapeRecipe + diff --git a/WEB-INF/.cvsignore b/WEB-INF/.cvsignore new file mode 100644 index 0000000..d366d2e --- /dev/null +++ b/WEB-INF/.cvsignore @@ -0,0 +1 @@ +classes \ No newline at end of file diff --git a/WEB-INF/classes/servlet/HowToJsonData.class b/WEB-INF/classes/servlet/HowToJsonData.class new file mode 100644 index 0000000..7d9ad1c --- /dev/null +++ b/WEB-INF/classes/servlet/HowToJsonData.class Binary files differ diff --git a/WEB-INF/classes/servlet/JsonData.class b/WEB-INF/classes/servlet/JsonData.class new file mode 100644 index 0000000..9fb0931 --- /dev/null +++ b/WEB-INF/classes/servlet/JsonData.class Binary files differ diff --git a/WEB-INF/classes/servlet/MaterialJsonData.class b/WEB-INF/classes/servlet/MaterialJsonData.class new file mode 100644 index 0000000..dfe3dcd --- /dev/null +++ b/WEB-INF/classes/servlet/MaterialJsonData.class Binary files differ diff --git a/WEB-INF/classes/servlet/Scrape.class b/WEB-INF/classes/servlet/Scrape.class new file mode 100644 index 0000000..5ee3513 --- /dev/null +++ b/WEB-INF/classes/servlet/Scrape.class Binary files differ diff --git a/WEB-INF/lib/jsonic-1.3.10-sources.jar b/WEB-INF/lib/jsonic-1.3.10-sources.jar new file mode 100644 index 0000000..a5cc106 --- /dev/null +++ b/WEB-INF/lib/jsonic-1.3.10-sources.jar Binary files differ diff --git a/WEB-INF/lib/jsonic-1.3.10.jar b/WEB-INF/lib/jsonic-1.3.10.jar new file mode 100644 index 0000000..05ef593 --- /dev/null +++ b/WEB-INF/lib/jsonic-1.3.10.jar Binary files differ diff --git a/WEB-INF/lib/jsoup-1.10.2.jar b/WEB-INF/lib/jsoup-1.10.2.jar new file mode 100644 index 0000000..75f716b --- /dev/null +++ b/WEB-INF/lib/jsoup-1.10.2.jar Binary files differ diff --git a/WEB-INF/src/servlet/HowToJsonData.java b/WEB-INF/src/servlet/HowToJsonData.java new file mode 100644 index 0000000..52b2202 --- /dev/null +++ b/WEB-INF/src/servlet/HowToJsonData.java @@ -0,0 +1,5 @@ +package servlet; + +public class HowToJsonData { + public String step = ""; +} diff --git a/WEB-INF/src/servlet/JsonData.java b/WEB-INF/src/servlet/JsonData.java new file mode 100644 index 0000000..9161116 --- /dev/null +++ b/WEB-INF/src/servlet/JsonData.java @@ -0,0 +1,9 @@ +package servlet; + +import java.util.ArrayList; + +public class JsonData { + public String anyone = ""; + public java.util.List material = new ArrayList<>(); + public java.util.List howto = new ArrayList<>(); +} diff --git a/WEB-INF/src/servlet/MaterialJsonData.java b/WEB-INF/src/servlet/MaterialJsonData.java new file mode 100644 index 0000000..c83482b --- /dev/null +++ b/WEB-INF/src/servlet/MaterialJsonData.java @@ -0,0 +1,6 @@ +package servlet; + +public class MaterialJsonData { + public String material = ""; + public String amount = ""; +} \ No newline at end of file diff --git a/WEB-INF/src/servlet/Scrape.java b/WEB-INF/src/servlet/Scrape.java new file mode 100644 index 0000000..bb2905e --- /dev/null +++ b/WEB-INF/src/servlet/Scrape.java @@ -0,0 +1,78 @@ +package servlet; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.jsoup.Jsoup; +import org.jsoup.select.Elements; + +import net.arnx.jsonic.JSON; + +public class Scrape extends HttpServlet { + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + // TODO Auto-generated method stub + this.doPost(req, resp); + } + + @Override + public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + response.setContentType("application/json;charset=UTF-8"); + + String url = request.getParameter("recipeUrl"); + + /* HTML 出力用 PrintWriter */ + PrintWriter out = response.getWriter(); + + org.jsoup.nodes.Document document = Jsoup.connect(url).get(); + Elements anyone = document.select("div.materialTit h3 span span"); + Elements tmp = document.select("div.materialBox ul li"); + + Elements material = new Elements(); + Elements amount = new Elements(); + + JsonData jsonData = new JsonData(); + jsonData.anyone = anyone.text(); + MaterialJsonData materialJsonData; + + for (int i = 0; i < tmp.size(); i++) { + materialJsonData = new MaterialJsonData(); + if (tmp.get(i).select(".amount").isEmpty() != true) { + material.addAll(tmp.get(i).select("a")); + amount.addAll(tmp.get(i).select("p")); + materialJsonData.material = tmp.get(i).select("a").text(); + materialJsonData.amount = tmp.get(i).select("p").text(); + } else { + material.addAll(tmp.get(i).select("a")); + amount.addAll(tmp.get(i).select("a")); + materialJsonData.material = tmp.get(i).select("a").text(); + materialJsonData.amount = tmp.get(i).select("a").text(); + } + jsonData.material.add(materialJsonData); + } + + Elements howto = document.select("p.stepMemo"); + for (int i = 0; i < howto.size(); i++) { + HowToJsonData howToJsonData = new HowToJsonData(); + howToJsonData.step = howto.get(i).text(); + jsonData.howto.add(howToJsonData); + } + + String responseJson = JSON.encode(jsonData, true); + + out.print(responseJson); + + out.close(); + } + + public Scrape() { + // TODO Auto-generated constructor stub + } +} \ No newline at end of file diff --git a/WEB-INF/web.xml b/WEB-INF/web.xml new file mode 100644 index 0000000..d94eefb --- /dev/null +++ b/WEB-INF/web.xml @@ -0,0 +1,17 @@ + + + + + + Scrape + servlet.Scrape + + + Scrape + /Scrape + + \ No newline at end of file