{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Web-scraping: сбор данных из баз данных и интернет-источников\n", "\n", "*Алла Тамбовцева, НИУ ВШЭ*\n", "\n", "## Домашнее задание 2\n", "\n", "Задание выполняется самостоятельно. При любых нетривиальных совпадениях в решениях задач все вовлечённые домашние работы будут оценены на 0 баллов." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задание 1 (10 баллов)\n", "\n", "Напишите программу, которая заходит на страницу со списком сотрудников кафедры высшей математики (https://hmat.hse.ru/persons) и выгружает ссылки на страницы сотрудников. Если ссылки неполные (относительные или без `http:`), исправьте это. Итог выполнения этого задания – список со ссылками на страницы сотрудников без повторений (35 ссылок)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задание 2 (20 баллов)\n", "\n", "Напишите программу, которая заходит на страницу 12-го сотрудника из списка, полученного в задании 1, и выгружает следующую информацию:\n", "\n", "* ФИО сотрудника;\n", "* год, в котором сотрудник начал работать в НИУ ВШЭ;\n", "* список языков, которыми владеет сотрудник.\n", "\n", "Итог выполнения этого задания – список из трёх элементов: ФИО сотрудника (строка), год начала работы в НИУ ВШЭ (целое число), языки, которым владеет сотрудник (строка, склеенная из элементов списка). Пример результата (другой сотрудник):\n", "\n", " [\"Тамбовцева Алла Андреевна\", 2014, \n", " \"английский испанский французский словенский\"]\n", " \n", "**Подсказка:** чтобы превратить строку в целое число, можно воспользоваться функцией `int()`:\n", "\n", " int(\"2014\")\n", " 2014" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задание 3 (10 баллов)\n", "\n", "Напишите функцию `hse_info()`, которая принимает на вход ссылку на страницу любого сотрудника и возвращает список с информацией из задания 2. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задание 4 (20 баллов)\n", "\n", "Примените функцию `hse_info()` ко всем ссылкам в списке из задания 1 и сохраните результаты в удобном для вас виде. Если информации о языках нет, а вместо неё выгружается что-то другое (там есть 5 страниц с нарушением структуры), замените это другое на строку \"нет данных\".\n", "\n", "Преобразуйте полученные результаты в датафрейм `pandas` и выгрузите его в файл Excel. Перед выгрузкой проверьте, что датафрейм содержит нужно число строк (35 сотрудников) и понятные названия столбцов." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }