Web-scraping: сбор данных из баз данных и интернет-источников

Алла Тамбовцева, НИУ ВШЭ

Домашнее задание 1

Задание выполняется самостоятельно. При любых нетривиальных совпадениях в решениях задач все вовлечённые домашние работы будут оценены на 0 баллов.

Задача 1 (6 баллов)

Дан список фразовых глаголов verbs:

In [1]:
verbs = ["turn on", "turn off", "take off", "go on", "put off", 
         "take on", "put on", "let off", "look up", "run away"]

a. (2 балла) Сохраните в список verbs_on глаголы с предлогом on, а в список verbs_off – глаголы с предлогом off.

In [ ]:
### YOUR CODE HERE

b. (2 балла) Напишите код, который выводит на экран сообщение "ON > OFF", если количество элементов в списке verbs_on больше, чем количество элементов в списке verbs_off, и сообщение "ON <= OFF" – если иначе.

In [ ]:
### YOUR CODE HERE

c. (2 балла) Используя список verbs_off и методы на строках, выведите на экран сообщение "Let off, put off, take off, turn off are sorted off-verbs."

In [ ]:
### YOUR CODE HERE

Задача 2 (2 балла)

Дана строка song:

In [7]:
song = "Every drop of rain That falls in Sahara Desert says it all..."

Сохраните в переменную words список слов из этой строки, считая, что все слова должны быть набраны строчными (маленькими) буквами.

In [ ]:
### YOUR CODE HERE

Задача 3 (3 балла)

У питона Пети в записной книжке хранятся полные имена друзей и знакомых из разных стран. Записная книжка представляет собой словарь:

In [8]:
pythons = {"королевский питон Рональд" : "Уганда", 
      "карликовый питон Антониа" : "Ангола", 
      "сетчатый питон Асиф" : "Бангладеш", 
      "зеленый питон Оливер" : "Австралия", 
      "тиморский питон Николау" : "Восточный Тимор", 
      "аметистовый питон Харрисон" : "Австралия", 
      "тигровый питон Мэйли" : "Китай",
      "оливковый питон Руби" : "Австралия", 
      "белогубый питон Арис" : "Индонезия", 
      "эфиопский питон Оника" : "Мозамбик"}

Питон Петя хочет съездить в Австралию, и поэтому хочет вывести на экран имена тех друзей и знакомых, которые живут в Австралии (чтобы потом выбрать, у кого остановиться). Напишите программу, которая выводит на экран полные имена питонов из Австралии.

Ожидаемый вывод на экран (порядок записей может отличаться):

зеленый питон Оливер
оливковый питон Руби
аметистовый питон Харрисон
In [9]:
### YOUR CODE HERE

Задача 4 (3 балла)

Дан список с названиями файлов:

In [10]:
files = ['file 1.txt', 'file 2.txt', 'file 6.txt', 'file 9.txt']

Напишите программу, которая переименовывает файлы в списке ‒ заменяет все пробелы на нижнее подчеркивание – и выводит обновленный список files на экран.

Пример

На входе:

files = ['file 1.txt', 'file 2.txt', 'file 6.txt', 'file 9.txt']

На выходе:

files = ['file_1.txt', 'file_2.txt', 'file_6.txt', 'file_9.txt']

Подсказка: вам потребуется метод .replace() для строк.

In [11]:
### YOUR CODE HERE

Задача 5 (3 балла)

Создайте какие-нибудь две строки и сохраните их в переменные s1 и s2. Разбейте первую строку на слова и добавьте в конец получившегося списка вторую строку целиком. Выведите на экран получившийся список.

Пример

На входе:

s1 = "Hello Brave New World"
s2 = "This is a test"

На выходе:

['Hello', 'Brave', 'New', 'World', 'This is a test']

Задача 6 (3 балла)

Дан словарь с информацией по пользователям:

In [16]:
info = {"user00" : {"name" : "Ann", 
                   "age" : "16",
                   "hobby" : ["hiking", "bouldering", "skating"],
                   "languages" : {"English" : "advanced", 
                                  "Spanish" : "intermediate"}},
       "user01" : {"name" : "Nick",
                  "age" : "20", 
                  "hobby" : ["swimming", "gaming"], 
                  "languages" : {"French" : "elementary"}}}

Используя элементы словаря (извлекая их из него явно, с помощью кода), выведите на экран сообщение:

Ann is 16. She likes hiking, bouldering, skating. Her English is 
at an advanced level.

Подсказка: предварительно сохраните все необходимые элементы в переменные, а потом подставьте их в текстовый шаблон через f-строки (см.ниже).

In [22]:
age = 20
smth = "cats"
lang = "Japanese"
adj = "intermediate"

res = f"Ann is {age}. She likes {smth}. Her {lang} is at an {adj} level."
print(res)
Ann is 20. She likes cats. Her Japanese is at an intermediate level.
In [ ]:
### YOUR CODE HERE