 <p>Here is one solution I propose which may not be the solution you may want but here it is. Since it's a table and everything comes one after other, what you can do is, through appropriate Jsoup selectors get the following data one after another.</p> <pre><code>Mo Do Mi Do Fr Sa 8:00 9:30 9:45 11:45 Sem Wz J0122 11:30 13:30 CAE Wz J0122 1) SEM Wz J0122 DVI Eer J0326 2) </code></pre> <p>...and so on...</p> <p>Now since you know there are only six working days in a week. You can create a HashMap of String and a LinkedList. String for days of the week and LinkedList for the content which goes in it. In the LinkedList you can first put time and check whether that time has any course following it, then repeat that for all the other timings.</p> <p>So you now have the data structure that all you need to do is call the day of the week (and the timing if necessary) and get the required course.</p>