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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1041 - (hide 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 torben 1041 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