In [214]:
import urllib.request
import socket
import ssl
from bs4 import BeautifulSoup
In [215]:
ssl._create_default_https_context = ssl._create_unverified_context
In [216]:
url = "http://www.czechitas.cz/cs/kalendar-akci/events"
response = urllib.request.urlopen(url)
the_page = response.read()
soup = BeautifulSoup(the_page, 'html.parser')
events = soup.find_all("div", class_="cal-entry")
In [217]:
events
Out[217]:
[<div class="col-4 cal-entry programuju">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/2346/2017/03/23">
 <span class="cal-name">
 					Programuju
 				</span>
 <p class="cal-date">
 <strong> čtvrtek, 23. 03. 2017</strong>
 </p>
 <h4>Java pokročilá</h4>
 <p class="cal-place">
 					                                            FI MUNI, Brno
                     				</p>
 <div class="event-descp"> <p>Rozšiř svoje schopnosti programování v jazyce Java o webový vývoj!</p></div>
 </a>
 </div>, <div class="col-4 cal-entry digitalAcademy">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/3231/">
 <span class="cal-name">
 					Digitální akademie
 				</span>
 <p class="cal-date">
 <strong> sobota, 25. 03. 2017</strong>
 </p>
 <h4>DataGirls</h4>
 <p class="cal-place">
 					                                            Impact Hub Praha, Praha
                     				</p>
 <div class="event-descp"> <p>Lákají tě data? Nauč se s nimi pracovat efektivně a pěkně od začátku! </p></div>
 </a>
 </div>, <div class="col-4 cal-entry jsemOriginal">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/3235/">
 <span class="cal-name">
 					Jsem originál
 				</span>
 <p class="cal-date">
 <strong> sobota, 25. 03. 2017</strong>
 </p>
 <h4>Jsem Originál!: Fotka</h4>
 <p class="cal-place">
 					                                            JIC, Brno-Medlánky
                     				</p>
 <div class="event-descp"> <p>Nauč se upravovat fotky v grafickém editoru Photoshop on-line!</p></div>
 </a>
 </div>, <div class="col-4 cal-entry akademieProgramovani">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/3254/">
 <span class="cal-name">
 					Akademie programování
 				</span>
 <p class="cal-date">
 <strong> neděle, 26. 03. 2017</strong>
 </p>
 <h4>Den s Legoroboty</h4>
 <p class="cal-place">
 					                                            ZŠ Nedvědova, Olomouc
                     				</p>
 <div class="event-descp"> <p>Postav a hlavně oživ si svého vlastního Legorobota!</p></div>
 </a>
 </div>, <div class="col-4 cal-entry programuju">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/3308/2017/03/27">
 <span class="cal-name">
 					Programuju
 				</span>
 <p class="cal-date">
 <strong> pondělí, 27. 03. 2017</strong>
 </p>
 <h4>Czechitas Coding Club</h4>
 <p class="cal-place">
 					                                            PP Praha, Praha 7
                     				</p>
 <div class="event-descp"> <p>Ever asked yourself after taking another awesome programming course at Czechitas: "I learned some new programming concepts, now what?" </p></div>
 </a>
 </div>, <div class="col-4 cal-entry tvorimWeb">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/2294/2017/03/28">
 <span class="cal-name">
 					Tvořím web
 				</span>
 <p class="cal-date">
 <strong> úterý, 28. 03. 2017</strong>
 </p>
 <h4>Tvořím web od A do Z</h4>
 <p class="cal-place">
 					                                            FI MUNI, Brno
                     				</p>
 <div class="event-descp"> <p>Zajímá tě web? Chtěla by sis umět vytvořit super webovku pomocí moderních postupů a nástrojů pro tvorbu responzivních webových stránek?</p></div>
 </a>
 </div>, <div class="col-4 cal-entry jsemDigitalni">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/3128/">
 <span class="cal-name">
 					Jsem digitální!
 				</span>
 <p class="cal-date">
 <strong> sobota, 1. 04. 2017</strong>
 </p>
 <h4>Product Management</h4>
 <p class="cal-place">
 					                                            COWO, Brno
                     				</p>
 <div class="event-descp"> <p>Uvažuješ nad novým produktem nebo službou a nevíš jestli dává smysl se do něj pustit? </p></div>
 </a>
 </div>, <div class="col-4 cal-entry programuju">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/2346/2017/04/06">
 <span class="cal-name">
 					Programuju
 				</span>
 <p class="cal-date">
 <strong> čtvrtek, 6. 04. 2017</strong>
 </p>
 <h4>Java pokročilá</h4>
 <p class="cal-place">
 					                                            FI MUNI, Brno
                     				</p>
 <div class="event-descp"> <p>Rozšiř svoje schopnosti programování v jazyce Java o webový vývoj!</p></div>
 </a>
 </div>, <div class="col-4 cal-entry programuju">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/3258/">
 <span class="cal-name">
 					Programuju
 				</span>
 <p class="cal-date">
 <strong> neděle, 9. 04. 2017</strong>
 </p>
 <h4>Úvod do testování</h4>
 <p class="cal-place">
 					                                            Praha - bude dopřesněno, 
                     				</p>
 <div class="event-descp"> <p>Nauč se základní pojmy a získej přehled o tom, co obnáší testovat softwarové aplikace.</p></div>
 </a>
 </div>, <div class="col-4 cal-entry dalsi">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/3313/">
 <span class="cal-name">
 					Další
 				</span>
 <p class="cal-date">
 <strong> neděle, 9. 04. 2017</strong>
 </p>
 <h4>Bezpečnost</h4>
 <p class="cal-place">
 					                                            FI MUNI, Brno
                     				</p>
 <div class="event-descp"> <p>Seznam se se základními principy počítačové bezpečnosti. Ukážeme ti situace, se kterými se potkáváš denně. </p></div>
 </a>
 </div>, <div class="col-4 cal-entry dalsi">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/3222/">
 <span class="cal-name">
 					Další
 				</span>
 <p class="cal-date">
 <strong> pondělí, 10. 04. 2017</strong>
 </p>
 <h4>Kurz na míru - Grafika pro HR</h4>
 <p class="cal-place">
 					                                            VOX, Praha 1
                     				</p>
 <div class="event-descp"> <p>Celodenní kurz zaměřený na Grafiku v HR oblasti. Pro všechny, kteří mají na starosti firemní komunikaci a chtějí umět udělat pěknou grafiku.</p></div>
 </a>
 </div>, <div class="col-4 cal-entry programuju">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/3308/2017/04/10">
 <span class="cal-name">
 					Programuju
 				</span>
 <p class="cal-date">
 <strong> pondělí, 10. 04. 2017</strong>
 </p>
 <h4>Czechitas Coding Club</h4>
 <p class="cal-place">
 					                                            PP Praha, Praha 7
                     				</p>
 <div class="event-descp"> <p>Ever asked yourself after taking another awesome programming course at Czechitas: "I learned some new programming concepts, now what?" </p></div>
 </a>
 </div>, <div class="col-4 cal-entry tvorimWeb">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/2294/2017/04/11">
 <span class="cal-name">
 					Tvořím web
 				</span>
 <p class="cal-date">
 <strong> úterý, 11. 04. 2017</strong>
 </p>
 <h4>Tvořím web od A do Z</h4>
 <p class="cal-place">
 					                                            FI MUNI, Brno
                     				</p>
 <div class="event-descp"> <p>Zajímá tě web? Chtěla by sis umět vytvořit super webovku pomocí moderních postupů a nástrojů pro tvorbu responzivních webových stránek?</p></div>
 </a>
 </div>, <div class="col-4 cal-entry dalsi">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/3212/">
 <span class="cal-name">
 					Další
 				</span>
 <p class="cal-date">
 <strong> čtvrtek, 13. 04. 2017</strong>
 </p>
 <h4>Kurz na míru - Excel pro HR</h4>
 <p class="cal-place">
 					                                            VOX, Praha 1
                     				</p>
 <div class="event-descp"> <p>Celodenní kurz zaměřený na Excel v HR oblasti. Pro všechny, kteří musí v Excelu víc než jen sčítat!</p></div>
 </a>
 </div>, <div class="col-4 cal-entry programuju">
 <a href="http://www.czechitas.cz/cs/kalendar-akci/akce/2346/2017/04/13">
 <span class="cal-name">
 					Programuju
 				</span>
 <p class="cal-date">
 <strong> čtvrtek, 13. 04. 2017</strong>
 </p>
 <h4>Java pokročilá</h4>
 <p class="cal-place">
 					                                            FI MUNI, Brno
                     				</p>
 <div class="event-descp"> <p>Rozšiř svoje schopnosti programování v jazyce Java o webový vývoj!</p></div>
 </a>
 </div>]
In [218]:
events[0]
Out[218]:
<div class="col-4 cal-entry programuju">
<a href="http://www.czechitas.cz/cs/kalendar-akci/akce/2346/2017/03/23">
<span class="cal-name">
					Programuju
				</span>
<p class="cal-date">
<strong> čtvrtek, 23. 03. 2017</strong>
</p>
<h4>Java pokročilá</h4>
<p class="cal-place">
					                                            FI MUNI, Brno
                    				</p>
<div class="event-descp"> <p>Rozšiř svoje schopnosti programování v jazyce Java o webový vývoj!</p></div>
</a>
</div>
In [219]:
titles = []
dates = []
places = []
categories = []
In [220]:
for element in events:
    titles.append(element.h4.get_text())
    categories.append(element.span.get_text())
    dates.append(element.p.get_text())
    place = element.find(class_="cal-place").get_text()
    places.append(place)
In [221]:
import pandas as pd
In [222]:
courses = {'title': titles,
         'category': categories,
         'date': dates,
         'place': places}
In [223]:
courseDf = pd.DataFrame.from_dict(courses)
In [224]:
courseDf
Out[224]:
category date place title
0 \n\t\t\t\t\tProgramuju\n\t\t\t\t \n čtvrtek, 23. 03. 2017\n \n\t\t\t\t\t ... Java pokročilá
1 \n\t\t\t\t\tDigitální akademie\n\t\t\t\t \n sobota, 25. 03. 2017\n \n\t\t\t\t\t ... DataGirls
2 \n\t\t\t\t\tJsem originál\n\t\t\t\t \n sobota, 25. 03. 2017\n \n\t\t\t\t\t ... Jsem Originál!: Fotka
3 \n\t\t\t\t\tAkademie programování\n\t\t\t\t \n neděle, 26. 03. 2017\n \n\t\t\t\t\t ... Den s Legoroboty
4 \n\t\t\t\t\tProgramuju\n\t\t\t\t \n pondělí, 27. 03. 2017\n \n\t\t\t\t\t ... Czechitas Coding Club
5 \n\t\t\t\t\tTvořím web\n\t\t\t\t \n úterý, 28. 03. 2017\n \n\t\t\t\t\t ... Tvořím web od A do Z
6 \n\t\t\t\t\tJsem digitální!\n\t\t\t\t \n sobota, 1. 04. 2017\n \n\t\t\t\t\t ... Product Management
7 \n\t\t\t\t\tProgramuju\n\t\t\t\t \n čtvrtek, 6. 04. 2017\n \n\t\t\t\t\t ... Java pokročilá
8 \n\t\t\t\t\tProgramuju\n\t\t\t\t \n neděle, 9. 04. 2017\n \n\t\t\t\t\t ... Úvod do testování
9 \n\t\t\t\t\tDalší\n\t\t\t\t \n neděle, 9. 04. 2017\n \n\t\t\t\t\t ... Bezpečnost
10 \n\t\t\t\t\tDalší\n\t\t\t\t \n pondělí, 10. 04. 2017\n \n\t\t\t\t\t ... Kurz na míru - Grafika pro HR
11 \n\t\t\t\t\tProgramuju\n\t\t\t\t \n pondělí, 10. 04. 2017\n \n\t\t\t\t\t ... Czechitas Coding Club
12 \n\t\t\t\t\tTvořím web\n\t\t\t\t \n úterý, 11. 04. 2017\n \n\t\t\t\t\t ... Tvořím web od A do Z
13 \n\t\t\t\t\tDalší\n\t\t\t\t \n čtvrtek, 13. 04. 2017\n \n\t\t\t\t\t ... Kurz na míru - Excel pro HR
14 \n\t\t\t\t\tProgramuju\n\t\t\t\t \n čtvrtek, 13. 04. 2017\n \n\t\t\t\t\t ... Java pokročilá
In [225]:
courseDf["category"] = courseDf["category"].str.replace('\n\t\t\t\t\t', "")
In [226]:
courseDf["category"] = courseDf["category"].str.replace('\n\t\t\t\t', "")
In [227]:
courseDf["date"] = courseDf["date"].str.replace('\n', "")
In [228]:
courseDf["place"] = courseDf["place"].str.replace('\n\t\t\t\t\t', "")
In [229]:
courseDf["place"] = courseDf["place"].str.replace('\n\t\t\t\t', "")
In [230]:
courseDf["place"] = courseDf["place"].str.replace(' ', "")
In [231]:
courseDf.to_csv('a.csv', encoding="utf-8", index=False)
In [232]:
courseDf[["title", "date", "place", "category"]]
Out[232]:
title date place category
0 Java pokročilá čtvrtek, 23. 03. 2017 FIMUNI,Brno\n\t\t\t\t Programuju
1 DataGirls sobota, 25. 03. 2017 ImpactHubPraha,Praha\n\t\t\t\t Digitální akademie
2 Jsem Originál!: Fotka sobota, 25. 03. 2017 JIC,Brno-Medlánky\n\t\t\t\t Jsem originál
3 Den s Legoroboty neděle, 26. 03. 2017 ZŠNedvědova,Olomouc\n\t\t\t\t Akademie programování
4 Czechitas Coding Club pondělí, 27. 03. 2017 PPPraha,Praha7\n\t\t\t\t Programuju
5 Tvořím web od A do Z úterý, 28. 03. 2017 FIMUNI,Brno\n\t\t\t\t Tvořím web
6 Product Management sobota, 1. 04. 2017 COWO,Brno\n\t\t\t\t Jsem digitální!
7 Java pokročilá čtvrtek, 6. 04. 2017 FIMUNI,Brno\n\t\t\t\t Programuju
8 Úvod do testování neděle, 9. 04. 2017 Praha-budedopřesněno,\n\t\t\t\t Programuju
9 Bezpečnost neděle, 9. 04. 2017 FIMUNI,Brno\n\t\t\t\t Další
10 Kurz na míru - Grafika pro HR pondělí, 10. 04. 2017 VOX,Praha1\n\t\t\t\t Další
11 Czechitas Coding Club pondělí, 10. 04. 2017 PPPraha,Praha7\n\t\t\t\t Programuju
12 Tvořím web od A do Z úterý, 11. 04. 2017 FIMUNI,Brno\n\t\t\t\t Tvořím web
13 Kurz na míru - Excel pro HR čtvrtek, 13. 04. 2017 VOX,Praha1\n\t\t\t\t Další
14 Java pokročilá čtvrtek, 13. 04. 2017 FIMUNI,Brno\n\t\t\t\t Programuju
In [234]:
for c in courseDf:
    print (c)
category
date
place
title
In [237]:
for index, row in courseDf.iterrows():
    print (row["title"])
Java pokročilá
DataGirls
Jsem Originál!: Fotka
Den s Legoroboty
Czechitas Coding Club
Tvořím web od A do Z
Product Management
Java pokročilá
Úvod do testování
Bezpečnost
Kurz na míru - Grafika pro HR
Czechitas Coding Club
Tvořím web od A do Z
Kurz na míru - Excel pro HR
Java pokročilá
In [ ]: