In [3]:
from IPython.display import YouTubeVideo
import re
In [5]:
def Youtube_URL_to_text(url_link):
    return re.sub('https://youtu.be/','',url_link)
In [7]:
url = 'https://youtu.be/53b_nnGcnBY'
YouTubeVideo(Youtube_URL_to_text(url))
Out[7]:
In [8]:
url = 'https://youtu.be/eIVifBVJQIw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[8]:
In [9]:
url = 'https://youtu.be/eQpSC0IFhv0'
YouTubeVideo(Youtube_URL_to_text(url))
Out[9]:

Video: XML Design Principles See the official XML Origin and Goals

"Free as in Beer" means - free in the sense of costing no money; gratis.

In [10]:
url = 'https://youtu.be/4xsz7OkDJgM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[10]:
In [11]:
url = 'https://youtu.be/Ti8K9FmNW1w'
YouTubeVideo(Youtube_URL_to_text(url))
Out[11]:

XML Resources:

Extra Resources If you're new to XML and or would like some extra resources, here are a couple useful tutorials:

W3Schools

tizag.com

In [12]:
url = 'https://youtu.be/SIsG0HYYwY4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[12]:

See documentation on XPath syntax

In [13]:
url = 'https://youtu.be/OeiBJ_D-ZsM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[13]:

Quiz:

  • author.py
#!/usr/bin/env python
# Your task here is to extract data from xml on authors of an article
# and add it to a list, one item for an author.
# See the provided data structure for the expected format.
# The tags for first name, surname and email should map directly
# to the dictionary keys
import xml.etree.ElementTree as ET

article_file = "exampleResearchArticle.xml"


def get_root(fname):
    tree = ET.parse(fname)
    return tree.getroot()


def get_authors(root):
    authors = []
    for author in root.findall('./fm/bibl/aug/au'):
        data = {
                "fnm": None,
                "snm": None,
                "email": None
        }

        # YOUR CODE HERE

        authors.append(data)

    return authors


def test():
    solution = [{'fnm': 'Omer', 'snm': 'Mei-Dan', 'email': 'omer@extremegate.com'}, {'fnm': 'Mike', 'snm': 'Carmont', 'email': 'mcarmont@hotmail.com'}, {'fnm': 'Lior', 'snm': 'Laver', 'email': 'laver17@gmail.com'}, {'fnm': 'Meir', 'snm': 'Nyska', 'email': 'nyska@internet-zahav.net'}, {'fnm': 'Hagay', 'snm': 'Kammar', 'email': 'kammarh@gmail.com'}, {'fnm': 'Gideon', 'snm': 'Mann', 'email': 'gideon.mann.md@gmail.com'}, {'fnm': 'Barnaby', 'snm': 'Clarck', 'email': 'barns.nz@gmail.com'}, {'fnm': 'Eugene', 'snm': 'Kots', 'email': 'eukots@gmail.com'}]

    root = get_root(article_file)
    data = get_authors(root)

    assert data[0] == solution[0]
    assert data[1]["fnm"] == solution[1]["fnm"]


test()

exampleResearchArticle.xml

Answer:

One way of solving the exercise is listed below. There are couple of things to note about this solution:

  • since the names and email for authors are unique for each author, we use "find".
  • The text method can be used to get the value of the tag.
def get_author(root):
    authors = []
    for author in root.findall('./fm/bibl/aug/au'):
        data = {
                "fnm": None,
                "snm": None,
                "email": None
        }
        data["fnm"] = author.find('./fnm').text
        data["snm"] = author.find('./snm').text
        data["email"] = author.find('./email').text

        authors.append(data)

    return authors
In [14]:
url = 'https://youtu.be/YSEGZMBbxTk'
YouTubeVideo(Youtube_URL_to_text(url))
Out[14]:
In [15]:
url = 'https://youtu.be/RJyVIgUUemE'
YouTubeVideo(Youtube_URL_to_text(url))
Out[15]:
In [16]:
url = 'https://youtu.be/ax7aaLNZkPA'
YouTubeVideo(Youtube_URL_to_text(url))
Out[16]:
In [17]:
url = 'https://youtu.be/aR6Z7ggnjEY'
YouTubeVideo(Youtube_URL_to_text(url))
Out[17]:
In [18]:
url = 'https://youtu.be/rHQ8z4fIthA'
YouTubeVideo(Youtube_URL_to_text(url))
Out[18]:
In [19]:
url = 'https://youtu.be/6rSJRr9OtHM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[19]:
In [20]:
url = 'https://youtu.be/aJD8WJa3-9A'
YouTubeVideo(Youtube_URL_to_text(url))
Out[20]:
In [21]:
url = 'https://youtu.be/ojd7xXOd_64'
YouTubeVideo(Youtube_URL_to_text(url))
Out[21]:
In [22]:
url = 'https://youtu.be/vgJ0ZlxzSiw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[22]:
In [23]:
url = 'https://youtu.be/CZnFt1rOfwc'
YouTubeVideo(Youtube_URL_to_text(url))
Out[23]:
In [24]:
url = 'https://youtu.be/_rDjie-TaS8'
YouTubeVideo(Youtube_URL_to_text(url))
Out[24]:
In [25]:
url = 'https://youtu.be/QFjKVSmxODY'
YouTubeVideo(Youtube_URL_to_text(url))
Out[25]:
In [26]:
url = 'https://youtu.be/97FYi0SQFQ8'
YouTubeVideo(Youtube_URL_to_text(url))
Out[26]:
In [27]:
url = 'https://youtu.be/J1gn4ZBLkt4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[27]:
In [28]:
url = 'https://youtu.be/DZa6UOGet_g'
YouTubeVideo(Youtube_URL_to_text(url))
Out[28]:

Data Quality

In [29]:
url = 'https://youtu.be/JA7oIPaf9PM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[29]:
In [30]:
url = 'https://youtu.be/dzqOwmxK3j4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[30]:
In [31]:
url = 'https://youtu.be/h12MQ3d1Z1Y'
YouTubeVideo(Youtube_URL_to_text(url))
Out[31]:
In [32]:
url = 'https://youtu.be/dj46LqDBFYM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[32]:
In [33]:
url = 'https://youtu.be/uqCSn9Q9ARk'
YouTubeVideo(Youtube_URL_to_text(url))
Out[33]:
In [34]:
url = 'https://youtu.be/3S73cNbhuAk'
YouTubeVideo(Youtube_URL_to_text(url))
Out[34]:
In [35]:
url = 'https://youtu.be/G3RjHqqQSgE'
YouTubeVideo(Youtube_URL_to_text(url))
Out[35]:
In [36]:
url = 'https://youtu.be/B9vjn8IYaSg'
YouTubeVideo(Youtube_URL_to_text(url))
Out[36]:
In [37]:
url = 'https://youtu.be/hpyNAYJODqw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[37]:
In [38]:
url = 'https://youtu.be/Y7TNXALXut8'
YouTubeVideo(Youtube_URL_to_text(url))
Out[38]:
In [39]:
url = 'https://youtu.be/mADDYP7ldl4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[39]:
In [40]:
url = 'https://youtu.be/5xY3sCBHkOk'
YouTubeVideo(Youtube_URL_to_text(url))
Out[40]:
In [41]:
url = 'https://youtu.be/PMbcv9AYQT4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[41]:
In [42]:
url = 'https://youtu.be/bCAkWxApvQM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[42]:
In [43]:
url = 'https://youtu.be/_5AnMdslWg4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[43]:
In [44]:
url = 'https://youtu.be/cF0AEW4SIUM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[44]:
In [45]:
url = 'https://youtu.be/vWBMgSQvsVk'
YouTubeVideo(Youtube_URL_to_text(url))
Out[45]:
In [46]:
url = 'https://youtu.be/fSwaNltHTio'
YouTubeVideo(Youtube_URL_to_text(url))
Out[46]:

SQL FOR DATA ANALYSIS

Data and Tables:

In [47]:
url = 'https://youtu.be/CU4igXr9xTw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[47]:
In [48]:
url = 'https://youtu.be/V4gbPVdUOpw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[48]:
In [49]:
url = 'https://youtu.be/e8zSXnyskro'
YouTubeVideo(Youtube_URL_to_text(url))
Out[49]:
In [50]:
url = 'https://youtu.be/OB7iJnEY0Tg'
YouTubeVideo(Youtube_URL_to_text(url))
Out[50]:
In [51]:
url = 'https://youtu.be/-laXTx9corQ'
YouTubeVideo(Youtube_URL_to_text(url))
Out[51]:
In [52]:
url = 'https://youtu.be/YG8zfeRXAvM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[52]:
In [53]:
url = 'https://youtu.be/PhvA7DCgtpw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[53]:
In [54]:
url = 'https://youtu.be/tt-XjT9RdDg'
YouTubeVideo(Youtube_URL_to_text(url))
Out[54]:
In [55]:
url = 'https://youtu.be/TE9uvPwvpu4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[55]:
In [56]:
url = 'https://youtu.be/ZFn9xVQ0hD4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[56]:
In [57]:
url = 'https://youtu.be/v3EkXogyIL4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[57]:
In [58]:
url = 'https://youtu.be/O7kWdC8ffEw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[58]:
In [59]:
url = 'https://youtu.be/lMwSjDYgCq0'
YouTubeVideo(Youtube_URL_to_text(url))
Out[59]:
In [60]:
url = 'https://youtu.be/TIayTr4y9RA'
YouTubeVideo(Youtube_URL_to_text(url))
Out[60]:
In [61]:
url = 'https://youtu.be/q23Nlo1Rfn4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[61]:
In [62]:
url = 'https://youtu.be/lXoiI0gx3MU'
YouTubeVideo(Youtube_URL_to_text(url))
Out[62]:
In [63]:
url = 'https://youtu.be/WZRsqdNrC1A'
YouTubeVideo(Youtube_URL_to_text(url))
Out[63]:
In [64]:
url = 'https://youtu.be/1Gp4l-ZTCVk'
YouTubeVideo(Youtube_URL_to_text(url))
Out[64]:

Elements of SQL:

In [65]:
url = 'https://youtu.be/BYAyquwZmdM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[65]:
In [66]:
url = 'https://youtu.be/yLeLxDyXCSY'
YouTubeVideo(Youtube_URL_to_text(url))
Out[66]:
In [67]:
url = 'https://youtu.be/8swA-PqlEP0'
YouTubeVideo(Youtube_URL_to_text(url))
Out[67]:
In [68]:
url = 'https://youtu.be/GUD6yl0A1Aw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[68]:
In [69]:
url = 'https://youtu.be/N5T8ouw1SGc'
YouTubeVideo(Youtube_URL_to_text(url))
Out[69]:
In [70]:
url = 'https://youtu.be/wrjCB1abNyM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[70]:
In [71]:
url = 'https://youtu.be/-GlHaeB-vic'
YouTubeVideo(Youtube_URL_to_text(url))
Out[71]:
In [72]:
url = 'https://youtu.be/bR7EoKjN0EM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[72]:
In [73]:
url = 'https://youtu.be/6vfZYhhmuLU'
YouTubeVideo(Youtube_URL_to_text(url))
Out[73]:
In [74]:
url = 'https://youtu.be/CvB2qkSk1Zc'
YouTubeVideo(Youtube_URL_to_text(url))
Out[74]:
In [75]:
url = 'https://youtu.be/NRCs22HJ-vI'
YouTubeVideo(Youtube_URL_to_text(url))
Out[75]:
In [76]:
url = 'https://youtu.be/bcwFahJsww0'
YouTubeVideo(Youtube_URL_to_text(url))
Out[76]:
In [77]:
url = 'https://youtu.be/eeV5K5HKVx4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[77]:
In [78]:
url = 'https://youtu.be/_7Vqou7k7fI'
YouTubeVideo(Youtube_URL_to_text(url))
Out[78]:
In [79]:
url = 'https://youtu.be/BGt2DQer6I4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[79]:

Deeper Into SQL

In [80]:
url = 'https://youtu.be/mIIL-p2gaK4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[80]:
In [81]:
url = 'https://youtu.be/LQq5F77ANiY'
YouTubeVideo(Youtube_URL_to_text(url))
Out[81]:
In [82]:
url = 'https://youtu.be/l6SDnhM7B_k'
YouTubeVideo(Youtube_URL_to_text(url))
Out[82]:
In [83]:
url = 'https://youtu.be/T_LpzJl-EVE'
YouTubeVideo(Youtube_URL_to_text(url))
Out[83]:
In [84]:
url = 'https://youtu.be/7DCw86WMpYo'
YouTubeVideo(Youtube_URL_to_text(url))
Out[84]:
In [85]:
url = 'https://youtu.be/3kycKkbQK6A'
YouTubeVideo(Youtube_URL_to_text(url))
Out[85]:
In [86]:
url = 'https://youtu.be/AaLIKufl_mY'
YouTubeVideo(Youtube_URL_to_text(url))
Out[86]:
In [87]:
url = 'https://youtu.be/1FjqstT1faI'
YouTubeVideo(Youtube_URL_to_text(url))
Out[87]:
In [88]:
url = 'https://youtu.be/fnbLMcd0FGQ'
YouTubeVideo(Youtube_URL_to_text(url))
Out[88]:
In [89]:
url = 'https://youtu.be/P1aYwQhPnPQ'
YouTubeVideo(Youtube_URL_to_text(url))
Out[89]:
In [90]:
url = 'https://youtu.be/06LsRU4pmkA'
YouTubeVideo(Youtube_URL_to_text(url))
Out[90]:
In [91]:
url = 'https://youtu.be/4Ywln5AT6Hc'
YouTubeVideo(Youtube_URL_to_text(url))
Out[91]:
In [92]:
url = 'https://youtu.be/Zd0PAgb6vY4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[92]:
In [93]:
url = 'https://youtu.be/pn3MunHovMc'
YouTubeVideo(Youtube_URL_to_text(url))
Out[93]:
In [94]:
url = 'https://youtu.be/YWZ-bgnZWaM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[94]:
In [95]:
url = 'https://youtu.be/n7v-y8UrVJ0'
YouTubeVideo(Youtube_URL_to_text(url))
Out[95]:
In [96]:
url = 'https://youtu.be/t_ZSrov187k'
YouTubeVideo(Youtube_URL_to_text(url))
Out[96]:
In [97]:
url = 'https://youtu.be/q7a9w02Uepw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[97]:

CASE STUDY OPEN STREET MAP SQL:

In [98]:
url = 'https://youtu.be/vek87HVWexE'
YouTubeVideo(Youtube_URL_to_text(url))
Out[98]:
In [99]:
url = 'https://youtu.be/JyX6j00Q2Cg'
YouTubeVideo(Youtube_URL_to_text(url))
Out[99]:
In [100]:
url = 'https://youtu.be/pxUvIP4PQt0'
YouTubeVideo(Youtube_URL_to_text(url))
Out[100]:
In [101]:
url = 'https://youtu.be/1OwIbj9dcLo'
YouTubeVideo(Youtube_URL_to_text(url))
Out[101]:
In [102]:
url = 'https://youtu.be/GYhOEJ8EXkg'
YouTubeVideo(Youtube_URL_to_text(url))
Out[102]:
In [103]:
url = 'https://youtu.be/c0IcUiF_kXs'
YouTubeVideo(Youtube_URL_to_text(url))
Out[103]:
In [104]:
url = 'https://youtu.be/eIvm5rEMZGY'
YouTubeVideo(Youtube_URL_to_text(url))
Out[104]:
In [105]:
url = 'https://youtu.be/pXfWdBuWw74'
YouTubeVideo(Youtube_URL_to_text(url))
Out[105]:
In [ ]:
 

MONGODB FOR DATA ANALYSIS

Working with MongoDB

In [111]:
url = 'https://youtu.be/GfK7GW3V-W0'
YouTubeVideo(Youtube_URL_to_text(url))
Out[111]:
In [112]:
url = 'https://youtu.be/6sDkIE_nAGI'
YouTubeVideo(Youtube_URL_to_text(url))
Out[112]:
In [113]:
url = 'https://youtu.be/jjMw4Ju-1CM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[113]:
In [114]:
url = 'https://youtu.be/6a-YgbrEACk'
YouTubeVideo(Youtube_URL_to_text(url))
Out[114]:
In [115]:
url = 'https://youtu.be/h6M4x9aXx5g'
YouTubeVideo(Youtube_URL_to_text(url))
Out[115]:
In [116]:
url = 'https://youtu.be/V2UMNT9VBrw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[116]:
In [117]:
url = 'https://youtu.be/tsAh4HonzIw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[117]:
In [118]:
url = 'https://youtu.be/dFGlIC9nI1Q'
YouTubeVideo(Youtube_URL_to_text(url))
Out[118]:
In [119]:
url = 'https://youtu.be/hi6g1NE3sPk'
YouTubeVideo(Youtube_URL_to_text(url))
Out[119]:
In [120]:
url = 'https://youtu.be/JVYH9B6Obpg'
YouTubeVideo(Youtube_URL_to_text(url))
Out[120]:
In [121]:
url = 'https://youtu.be/PlJ_dfdEbR0'
YouTubeVideo(Youtube_URL_to_text(url))
Out[121]:
In [122]:
url = 'https://youtu.be/6r5Xc-_lhEI'
YouTubeVideo(Youtube_URL_to_text(url))
Out[122]:
In [123]:
url = 'https://youtu.be/j5l5UvE3Odw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[123]:
In [124]:
url = 'https://youtu.be/MbJfmI7kzQI'
YouTubeVideo(Youtube_URL_to_text(url))
Out[124]:
In [125]:
url = 'https://youtu.be/8uhfnWgiBHM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[125]:
In [126]:
url = 'https://youtu.be/8iX-7hwKX1Q'
YouTubeVideo(Youtube_URL_to_text(url))
Out[126]:
In [127]:
url = 'https://youtu.be/B3iYl-2HSXI'
YouTubeVideo(Youtube_URL_to_text(url))
Out[127]:
In [128]:
url = 'https://youtu.be/OcPW6xp8DfE'
YouTubeVideo(Youtube_URL_to_text(url))
Out[128]:
In [129]:
url = 'https://youtu.be/mpMHJQalRck'
YouTubeVideo(Youtube_URL_to_text(url))
Out[129]:
In [130]:
url = 'https://youtu.be/bgOky14w77Q'
YouTubeVideo(Youtube_URL_to_text(url))
Out[130]:
In [131]:
url = 'https://youtu.be/tuXc0Ycy_yM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[131]:
In [132]:
url = 'https://youtu.be/oFWNOvxuIRQ'
YouTubeVideo(Youtube_URL_to_text(url))
Out[132]:
In [133]:
url = 'https://youtu.be/mjPfjzOWiDw'
YouTubeVideo(Youtube_URL_to_text(url))
Out[133]:

Analyzing Data with MongoDB

In [134]:
url = 'https://youtu.be/l2Nab0LY_cI'
YouTubeVideo(Youtube_URL_to_text(url))
Out[134]:
In [135]:
url = 'https://youtu.be/xiqleK_px_Q'
YouTubeVideo(Youtube_URL_to_text(url))
Out[135]:
In [136]:
url = 'https://youtu.be/pOJAW4jTjr0'
YouTubeVideo(Youtube_URL_to_text(url))
Out[136]:
In [137]:
url = 'https://youtu.be/0sl_mbV-fho'
YouTubeVideo(Youtube_URL_to_text(url))
Out[137]:
In [138]:
url = 'https://youtu.be/mRNyMEoCoY0'
YouTubeVideo(Youtube_URL_to_text(url))
Out[138]:
In [139]:
url = 'https://youtu.be/UZMklqP5-p4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[139]:
In [140]:
url = 'https://youtu.be/FZ8KVv1VOK4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[140]:
In [141]:
url = 'https://youtu.be/_kupbxrZBds'
YouTubeVideo(Youtube_URL_to_text(url))
Out[141]:
In [142]:
url = 'https://youtu.be/6wBjB3Ca5H4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[142]:
In [143]:
url = 'https://youtu.be/cleAY1-Jboc'
YouTubeVideo(Youtube_URL_to_text(url))
Out[143]:
In [144]:
url = 'https://youtu.be/0TV8kTw9-HM'
YouTubeVideo(Youtube_URL_to_text(url))
Out[144]:
In [145]:
url = 'https://youtu.be/tSgPhxZdhLk'
YouTubeVideo(Youtube_URL_to_text(url))
Out[145]:
In [146]:
url = 'https://youtu.be/vL9FcO_9dCA'
YouTubeVideo(Youtube_URL_to_text(url))
Out[146]:
In [147]:
url = 'https://youtu.be/iGnSNfzaLf4'
YouTubeVideo(Youtube_URL_to_text(url))
Out[147]:
In [148]:
url = 'https://youtu.be/quszTmIRG8M'
YouTubeVideo(Youtube_URL_to_text(url))
Out[148]:

Case Study: OpenStreetMap

In [149]:
url = 'https://youtu.be/vek87HVWexE'
YouTubeVideo(Youtube_URL_to_text(url))
Out[149]:
In [150]:
url = 'https://youtu.be/JyX6j00Q2Cg'
YouTubeVideo(Youtube_URL_to_text(url))
Out[150]:
In [152]:
url = 'https://youtu.be/1OwIbj9dcLo'
YouTubeVideo(Youtube_URL_to_text(url))
Out[152]:
In [153]:
url = 'https://youtu.be/GYhOEJ8EXkg'
YouTubeVideo(Youtube_URL_to_text(url))
Out[153]:
In [154]:
url = 'https://youtu.be/c0IcUiF_kXs'
YouTubeVideo(Youtube_URL_to_text(url))
Out[154]:
In [155]:
url = 'https://youtu.be/pH3VusOq9tc'
YouTubeVideo(Youtube_URL_to_text(url))
Out[155]: