/[projects]/android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/MetroServlet.java
ViewVC logotype

Contents of /android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/MetroServlet.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1041 - (show annotations) (download)
Mon Sep 13 13:47:32 2010 UTC (13 years, 8 months ago) by torben
File size: 2147 byte(s)
Sandbox: first try at making a parser for copenhagen metro
1 package dk.thoerup.traininfoservice.banedk;
2
3 import java.io.IOException;
4 import java.net.URL;
5 import java.util.logging.Logger;
6
7 import javax.servlet.ServletException;
8 import javax.servlet.annotation.WebServlet;
9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12
13 import org.jsoup.Jsoup;
14 import org.jsoup.nodes.Document;
15 import org.jsoup.nodes.Element;
16 import org.jsoup.select.Elements;
17
18
19 @WebServlet(urlPatterns={"/MetroServlet"})
20 public class MetroServlet extends HttpServlet {
21
22 Logger logger = Logger.getLogger(MetroServlet.class.getName());
23
24 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
25 URL url = new URL("http://www.m.dk/layouts/Metro/Widgets/MetroWidget.ashx?StationId=7&Congestion=true&Application=MyMetro&Expiration=true");
26 Document doc = Jsoup.parse(url, 5000);
27
28 String head = doc.getElementsByClass("metro-widget-headline").get(0).text();
29
30 logger.info("head: " + head);
31
32 Element content = doc.getElementsByClass("metro-widget-content").get(0);
33 Elements contentElems = content.children();
34
35 logger.info("tbody"+ content.getElementsByTag("table").size() );
36
37
38 Element departureTable = content.getElementsByTag("table").get(0);
39
40 logger.info(departureTable.text());
41 logger.info(departureTable.html());
42
43 Elements rows = departureTable.getElementsByTag("tr");
44
45
46 for (int i=1; i<rows.size(); i++) {
47 Element row = rows.get(i);
48
49 Elements fields = row.children();
50
51 String metro = fields.get(0).text();
52 String destination = fields.get(1).text();
53 Elements minuteFields = fields.get(2).children();
54 String minutes ="";
55
56 for (Element elm : minuteFields) {
57 minutes = minutes + elm.text() + " ";
58 }
59
60 logger.info("Row:" + metro + "/" + destination + "/" + minutes);
61 }
62
63 String driftsInfo = contentElems.get(3).text();
64 logger.info("Driftsinfo: " + driftsInfo);
65
66 String koereplan = contentElems.get(5).text();
67 logger.info("Køreplan:" + koereplan);
68
69
70 response.getWriter().print( doc.html() );
71 }
72
73 }

  ViewVC Help
Powered by ViewVC 1.1.20