{"componentChunkName":"component---src-templates-material-js","path":"/workshops/2021/09/10/parsing-s-pomoshchyu-python-urok-1/index.html","result":{"pageContext":{"pageParameters":{"isPreview":false,"isMirror":true,"delay_to_show_donate_popup_seconds":7,"about_page":false,"games_page":true,"games_page_link_in_header":false,"donate_popup_show_ru":true,"donate_popup_title_ru":"Без вас — нас не будет","donate_popup_content_ru":"Помогите нам добывать и рассказывать важные истории. Участие каждого — важно!","donate_popup_show_en":true,"donate_popup_title_en":"We can’t do it alone!","donate_popup_content_en":"Help us uncover and share the stories that matter. Every contribution makes a difference","display_regular_donors_banner":false,"showPatreonMethod":true,"useNewMaterialDonationBanner":true,"new_donations_page_design":true,"donations_popup_variants":{"ru":[{"id":"kc19b","title":"Сохраните журналистику для людей в России ","subtitle":"Читают нас прежде всего люди в России, но будущее «Важных историй» зависит от тех, кто живет за пределами страны. Поддержите нас ежемесячным донатом — сохраните независимую журналистику для ваших близких, которые остаются в России.","is_active":true,"background":"linear-gradient(10deg, #421f20 5%, #994146)"},{"id":"33tc9","title":"У пропаганды есть миллиарды из бюджета. У нас — только вы","subtitle":"Перемены возможны, если независимые от власти журналисты продолжают свою работу день за днем, год за годом. Мы рассказываем важные истории уже шесть лет. Помогите нам продолжать.","is_active":true,"background":"linear-gradient(10deg, #421f20 5%, #994146)"}],"en":[{"id":"nj1py","title":"Important stories don’t tell themselves","subtitle":"Independent journalism comes at a cost. We answer to no owners or advertisers — only to you, our readers.  Your ongoing support allows us to keep exposing the truth. Without you, we won’t be here.","is_active":true,"background":"linear-gradient(10deg, #421f20 5%, #994146)"},{"id":"xdfc1","title":"Help us outlast the Kremlin censorship","subtitle":"Censorship lose to journalism that keeps showing up, year after year. Monthly donors are what make that possible","is_active":true,"background":"linear-gradient(10deg, #421f20 5%, #994146)"},{"id":"ck121","title":"State propaganda has billions to spend. We have only you to rely on","subtitle":"Change happens when independent journalists keep showing up — day after day, year after year. Six years in, we're still showing up. Help us keep going with a monthly donation.","is_active":true,"background":"linear-gradient(10deg, #421f20 5%, #994146)"}]},"feedback_page":true,"donorsCount":0,"showAuthorsRequestAfterMaterial":true,"radioPage":true,"radioExists":{"ru":true,"en":false},"singlePlaylistPath":{"ru":"/radio/2025/12/22/razgovori-ovazhnikh/index.html"},"with_bookmarks":true,"news_feed":true,"news_feed_skeleton":false,"news_page_redesign":true,"with_topics":true,"materials_topics":false,"topics_page":true,"with_pdf_share":false,"with_native_share":false,"preferred_source_page":true,"charon_new_form":true,"preferred_source_promos":true,"charon_en_page":true},"pk":329,"header":"Парсинг с помощью Python. Урок 1","lead":"Учимся скрейпить сайты с помощью библиотек Beautifulsoup и Requests","category":"workshops","entry_image":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-1920x960px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-1920x960px_2x.webp","for_width":1920,"for_height":960,"real_width_1x":1920,"real_width_2x":3840,"real_height_1x":960,"real_height_2x":1920},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-1920x960px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-1920x960px_2x.jpg","for_width":1920,"for_height":960,"real_width_1x":1920,"real_width_2x":3840,"real_height_1x":960,"real_height_2x":1920},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-1272x636px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-1272x636px_2x.webp","for_width":1272,"for_height":636,"real_width_1x":1272,"real_width_2x":2544,"real_height_1x":636,"real_height_2x":1272},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-1272x636px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-1272x636px_2x.jpg","for_width":1272,"for_height":636,"real_width_1x":1272,"real_width_2x":2544,"real_height_1x":636,"real_height_2x":1272},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-912x456px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-912x456px_2x.webp","for_width":912,"for_height":456,"real_width_1x":912,"real_width_2x":1824,"real_height_1x":456,"real_height_2x":912},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-912x456px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-912x456px_2x.jpg","for_width":912,"for_height":456,"real_width_1x":912,"real_width_2x":1824,"real_height_1x":456,"real_height_2x":912},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-600x400px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-600x400px_2x.webp","for_width":600,"for_height":400,"real_width_1x":600,"real_width_2x":1200,"real_height_1x":400,"real_height_2x":800},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-600x400px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-600x400px_2x.jpg","for_width":600,"for_height":400,"real_width_1x":600,"real_width_2x":1200,"real_height_1x":400,"real_height_2x":800},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-360x360px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-360x360px_2x.webp","for_width":360,"for_height":360,"real_width_1x":360,"real_width_2x":720,"real_height_1x":360,"real_height_2x":720},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-360x360px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/398b3de3d1a04d7dbb3809df47eb8018-360x360px_2x.jpg","for_width":360,"for_height":360,"real_width_1x":360,"real_width_2x":720,"real_height_1x":360,"real_height_2x":720}],"entry_image_credit":"","blocks":[{"data":"Этим уроком мы начинаем курс, про который нас часто спрашивали — курс по парсингу данных с помощью Python. Мы уже рассказывали о <a href=\"https://istories.media/workshops/2020/09/09/table-capture-ckreipim-saiti-bez-programmirovaniya/\" data-type=\"usual\" target=\"_blank\">парсинге без программирования</a>, с помощью расширений для браузера, но их возможности ограничены и подходят не для всех сайтов. А вот Python поможет вам спарсить практически что угодно.","type":"p","className":""},{"data":{"id":2864,"data":{"url":"https://www.youtube.com/embed/0ws5tsRBgL8","text":"Съемка и монтаж: Глеб Лиманский","provider":"youtube","rawInput":"https://www.youtube.com/watch?v=0ws5tsRBgL8","ratio_mobile":"16:9","ratio_desktop":"16:9"},"category":"video-embed"},"type":"video-embed"},{"data":"Чтобы правильно парсить, нужно понимать, как устроены сайты. Почти все они сверстаны с помощью языка HTML. Разберемся в его устройстве&nbsp;на примере сайта «КиноПоиск» и попробуем спарсить <a href=\"https://www.kinopoisk.ru/lists/top250/\" data-type=\"usual\" target=\"_blank\">список</a> из 250 лучших фильмов по версии пользователей сайта.&nbsp;","type":"p","className":""},{"data":"Похожим на «КиноПоиск» образом устроены многие сайты, с которых журналистам бывает необходимо собрать данные, поэтому он хорошо подойдет для примера.","type":"p","className":""},{"data":{"id":2865,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/28d0b9bb42744a5abf35e177c7e990c8-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/28d0b9bb42744a5abf35e177c7e990c8-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":568,"real_height_2x":1136},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/28d0b9bb42744a5abf35e177c7e990c8-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/28d0b9bb42744a5abf35e177c7e990c8-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":568,"real_height_2x":1136}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Для этого курса мы используем браузер Google Chrome, поэтому, чтобы вам было проще понимать наши действия и не путаться в названиях функций, советуем использовать его же. Но в других браузерах, Firefox или Opera, например, все эти функции тоже есть.&nbsp;","type":"p","className":""},{"data":"Если вы кликнете на любое место сайта правой кнопкой мыши и нажмете на «<strong>Посмотреть код</strong>», то справа появится панель с кодом HTML (ее еще называют панелью разработчика). ","type":"p","className":""},{"data":{"id":2866,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/fbe1e81ca7074f0589a445e8c3c9de5e-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/fbe1e81ca7074f0589a445e8c3c9de5e-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":485,"real_height_2x":970},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/fbe1e81ca7074f0589a445e8c3c9de5e-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/fbe1e81ca7074f0589a445e8c3c9de5e-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":485,"real_height_2x":970}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Этот язык строится по тегам. Главный —&nbsp;<strong>html</strong>, в <strong>head</strong> обычно прописана метаинформация (заголовок, например), а нас сейчас интересует тег <strong>body</strong>, где лежит основная информация страницы.&nbsp;","type":"p","className":""},{"data":{"id":2867,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/e54a4c3dec474747a6c1eae245cfc9db-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/e54a4c3dec474747a6c1eae245cfc9db-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":534,"real_height_2x":1070},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/e54a4c3dec474747a6c1eae245cfc9db-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/e54a4c3dec474747a6c1eae245cfc9db-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":534,"real_height_2x":1070}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Чтобы посмотреть код конкретного элемента, нужно кликнуть именно на него и нажать «<strong>Посмотреть код</strong>» — тогда в панели разработчика подсветится нужный тег.","type":"p","className":""},{"data":{"id":2868,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/f0371b0180904bf1976ae4161cfcbd97-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/f0371b0180904bf1976ae4161cfcbd97-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":536,"real_height_2x":1073},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/f0371b0180904bf1976ae4161cfcbd97-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/f0371b0180904bf1976ae4161cfcbd97-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":536,"real_height_2x":1073}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"И наоборот, если двигаться по коду в панели справа, то слева, на самой странице, будет подсвечиваться сверстанный этим тегом элемент.","type":"p","className":""},{"data":"На страницах со списками одни и те же теги (название, оценка и так далее) повторяются от карточки к карточке. Поэтому нужно обнаружить и выписать эти конкретные теги. Но сначала вытащим весь код страницы, и здесь пригодится библиотека <strong>Requests</strong> —&nbsp;мы уже <a href=\"https://istories.media/workshops/2021/04/23/pishem-svoego-robota-na-python-urok-3/\" data-type=\"usual\" target=\"_blank\">рассказывали</a> о ней, советуем сначала прочитать тот урок и установить ее.","type":"p","className":""},{"data":"Открываем <strong>Jupyter</strong>, импортируем библиотеку с помощью <strong>import requests</strong>. Чтобы обратиться к сайту, создаем переменную <strong>url</strong> и присваиваем ей значение нужного сайта (у нас это ссылка на топ «КиноПоиска»).","type":"p","className":""},{"data":{"id":2869,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/713c8fd400e84982b7b50ace322cf427-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/713c8fd400e84982b7b50ace322cf427-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":492,"real_height_2x":984},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/713c8fd400e84982b7b50ace322cf427-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/713c8fd400e84982b7b50ace322cf427-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":492,"real_height_2x":984}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Отправим на сервер запрос с помощью команды <strong>get</strong>, на вход которой мы передаем переменную <strong>url</strong>. С помощью команды <strong>text</strong> посмотрим, что получилось.","type":"p","className":""},{"data":{"id":2870,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/ded904a26e2649be8381713ab32d0db0-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/ded904a26e2649be8381713ab32d0db0-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":405,"real_height_2x":810},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/ded904a26e2649be8381713ab32d0db0-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/ded904a26e2649be8381713ab32d0db0-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":405,"real_height_2x":810}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Как видите, код получился нечитаемым. Справиться с этим поможет другая библиотека, <strong>Beautifulsoup</strong>. Импортируем ее с помощью команды<strong> from bs4 import BeautifulSoup</strong>. Возможно, для этого понадобится сначала <a href=\"https://istories.media/workshops/2021/04/16/pishem-svoego-robota-na-python-urok-2/\" data-type=\"usual\" target=\"_blank\">установить</a> библиотеку через <strong>pip install</strong>.&nbsp;","type":"p","className":""},{"data":{"id":2871,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/f82cb161b288417cbe0c426bb9df8131-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/f82cb161b288417cbe0c426bb9df8131-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":202,"real_height_2x":405},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/f82cb161b288417cbe0c426bb9df8131-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/f82cb161b288417cbe0c426bb9df8131-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":202,"real_height_2x":405}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Мы должны передать библиотеке ответ, полученный с помощью <strong>Requests</strong>. Создадим переменную <strong>soup</strong>, передадим <strong>r.text </strong>и укажем необходимый формат (в нашем случае <strong>lxml</strong>).","type":"p","className":""},{"data":{"id":2872,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/ac7b57cab999401f87d4c3d71da74caf-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/ac7b57cab999401f87d4c3d71da74caf-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":506,"real_height_2x":1012},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/ac7b57cab999401f87d4c3d71da74caf-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/ac7b57cab999401f87d4c3d71da74caf-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":506,"real_height_2x":1012}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Код упорядочен, теги идут один за одним — теперь мы можем вынимать из кода то, что нам нужно. Для этого вернемся в браузер, на страницу с данными. Как видно на скриншоте, подряд расположены несколько тегов <strong>div</strong> с классом <strong>desktop-rating-selection-file-item</strong> — это карточка каждого из фильмов в списке.","type":"p","className":""},{"data":{"id":2873,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/c5d213263c0c411d9b6f05a0cf771376-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/c5d213263c0c411d9b6f05a0cf771376-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":458,"real_height_2x":916},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/c5d213263c0c411d9b6f05a0cf771376-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/c5d213263c0c411d9b6f05a0cf771376-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":458,"real_height_2x":916}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Сначала вытащим данные только из первой карточки, а затем перепишем код так, чтобы он сработал на все фильмы со страницы. Скопируем название класса — для этого два раза кликните на него мышкой и нажмите <strong>Ctrl+C</strong> (<strong>Cmd+C</strong> для macOS). ","type":"p","className":""},{"data":"В <strong>Beautifulsoup</strong> есть команда <strong>find</strong> —&nbsp;укажем ей нужный тег (<strong>div</strong>) и через запятую класс (<strong>desktop-rating-selection-file-item</strong>). После <strong>class</strong> обязательно нужно поставить нижнее подчеркивание.","type":"p","className":""},{"data":{"id":2874,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/818aee665aa84fdda67c2419b53d92fd-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/818aee665aa84fdda67c2419b53d92fd-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":298,"real_height_2x":595},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/818aee665aa84fdda67c2419b53d92fd-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/818aee665aa84fdda67c2419b53d92fd-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":298,"real_height_2x":595}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Отобразился уже не весь код, а только нужный элемент, в котором видно название фильма. Вернемся на сайт, чтобы углубиться в карточку и посмотреть, как называются нужные нам детали. Кликнем на название фильма «Зеленая миля» и снова выберем «<strong>Посмотреть код</strong>».&nbsp;","type":"p","className":""},{"data":"Например, мы видим, что ссылка на фильм лежит в теге <strong>a</strong> и имеет собственный класс <strong>selection-film-item-meta__link</strong>. В теге <strong>a</strong>, в свою очередь, есть теги <strong>p</strong> с русским и оригинальным названиями фильмов. Эти три элемента мы и заберем.","type":"p","className":""},{"data":{"id":2875,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/73c7b2c7b0e948f69851536cd28f4f8c-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/73c7b2c7b0e948f69851536cd28f4f8c-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":453,"real_height_2x":906},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/73c7b2c7b0e948f69851536cd28f4f8c-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/73c7b2c7b0e948f69851536cd28f4f8c-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":453,"real_height_2x":906}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Дополним нашу первую команду: ставим точку, снова пишем <strong>find</strong>, указываем тег <strong>a</strong> и его класс.","type":"p","className":""},{"data":{"id":2876,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/ea518b0ccb844f5fb6cac7c3423cab54-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/ea518b0ccb844f5fb6cac7c3423cab54-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":124,"real_height_2x":248},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/ea518b0ccb844f5fb6cac7c3423cab54-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/ea518b0ccb844f5fb6cac7c3423cab54-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":124,"real_height_2x":248}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Чтобы сделать ссылку на фильм работающей, в начале нужно дописать к ней домен. Сама ссылка лежит внутри тега, поэтому <strong>find</strong> мы применить не сможем. Воспользуемся командой <strong>get</strong> и укажем нужный атрибут (в нашем случае <strong>href</strong>).","type":"p","className":""},{"data":{"id":2877,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/6bcce13ba7ae4da3b9b783d2c9d61974-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/6bcce13ba7ae4da3b9b783d2c9d61974-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":141,"real_height_2x":282},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/6bcce13ba7ae4da3b9b783d2c9d61974-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/6bcce13ba7ae4da3b9b783d2c9d61974-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":141,"real_height_2x":282}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Допишем в начало команды домен «КиноПоиска» и запустим еще раз — так мы получим готовую ссылку. Положим этот код в переменную <strong>link</strong>.&nbsp;","type":"p","className":""},{"data":{"id":2878,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/fa30b72dd6a74dd79f3227c5b8a2d6dc-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/fa30b72dd6a74dd79f3227c5b8a2d6dc-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":118,"real_height_2x":236},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/fa30b72dd6a74dd79f3227c5b8a2d6dc-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/fa30b72dd6a74dd79f3227c5b8a2d6dc-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":118,"real_height_2x":236}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"По аналогии достанем русскоязычное и оригинальное названия. Возьмем тот же код, допишем новый <strong>find</strong>, укажем нужные тег и класс. Чтобы очистить результат от ненужных элементов кода, добавим в конце команду <strong>text</strong>. Эти переменные назовем <strong>russian_name</strong> и <strong>original_name</strong> соответственно.","type":"p","className":""},{"data":{"id":2893,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/125fd8b6ca594efb9df493cb86400ab0-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/125fd8b6ca594efb9df493cb86400ab0-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":198,"real_height_2x":395},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/125fd8b6ca594efb9df493cb86400ab0-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/125fd8b6ca594efb9df493cb86400ab0-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":198,"real_height_2x":395}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Еще мы можем достать из карточки страну производства и жанр — все будет работать точно так же, только класс будет не <strong>p</strong>, как у названий, а <strong>span</strong>. Страну положим в переменную <strong>country</strong>.","type":"p","className":""},{"data":"Однако в коде «КиноПоиска»&nbsp;страна и жанр имеют одинаковый класс <strong>selection-film-item-meta__meta-additional-item</strong> — а команда <strong>find</strong> находит только первое соответствие вашему запросу. Применим команду <strong>findAll</strong>, а все остальное оставим как раньше, чтобы получить список.&nbsp;","type":"p","className":""},{"data":{"id":2896,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/9e9691e750484014a922f644c380b07c-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/9e9691e750484014a922f644c380b07c-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":226,"real_height_2x":453},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/9e9691e750484014a922f644c380b07c-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/9e9691e750484014a922f644c380b07c-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":226,"real_height_2x":453}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Чтобы вытащить только жанр, добавим нумерацию в квадратных скобках (не забывайте, что в Python отсчет идет с <strong>0</strong>, поэтому нам нужен номер <strong>1</strong>) и команду <strong>text</strong>. Переменную назовем <strong>film_type</strong>.","type":"p","className":""},{"data":{"id":2897,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/23a968b5d4e248338f9d2b8815a6984a-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/23a968b5d4e248338f9d2b8815a6984a-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":100,"real_height_2x":199},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/23a968b5d4e248338f9d2b8815a6984a-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/23a968b5d4e248338f9d2b8815a6984a-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":100,"real_height_2x":199}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Основную информацию о фильме мы достали, но можем получить и кое-что еще —&nbsp;например, оценку. Проверим, как называется класс этого элемента на странице «КиноПоиска» с помощью уже известного метода «Посмотреть код». Как видите, нам повезло —&nbsp;класс имеет уникальное название, глубоко копать не придется.","type":"p","className":""},{"data":{"id":2898,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/5198bf234b9640ce99441e449860bf52-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/5198bf234b9640ce99441e449860bf52-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":287,"real_height_2x":574},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/5198bf234b9640ce99441e449860bf52-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/5198bf234b9640ce99441e449860bf52-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":287,"real_height_2x":574}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Скопируем ту часть изначальной команды <strong>find</strong>, где мы заходим в первый <strong>div</strong> карточки фильма и сразу укажем новый поиск по тегу <strong>span</strong> и классу <strong>rating__value rating__value_positive</strong> (и не забудем про <strong>text</strong>). Переменную назовем <strong>rate</strong>.","type":"p","className":""},{"data":{"id":2899,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/f1ae3c3a7f974a63ad75dfaf9c9f2625-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/f1ae3c3a7f974a63ad75dfaf9c9f2625-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":96,"real_height_2x":191},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/f1ae3c3a7f974a63ad75dfaf9c9f2625-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/f1ae3c3a7f974a63ad75dfaf9c9f2625-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":96,"real_height_2x":191}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Мы уже сделали почти всю работу, но пока что наш код работает только для первой карточки фильма в списке. Исправим это. Создадим переменную <strong>films</strong>, зададим новый поиск по самому первому <strong>div</strong>, но уже с командой <strong>findAll</strong>. И заодно посмотрим длину списка с помощью команды <strong>len</strong>. Их будет 50, потому что список топ-250 разбит на 5 страниц. Далее мы научим код ходить и по другим страницам.","type":"p","className":""},{"data":{"id":2900,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/17974662102c4366ad9a7626c0206621-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/17974662102c4366ad9a7626c0206621-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":126,"real_height_2x":253},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/17974662102c4366ad9a7626c0206621-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/17974662102c4366ad9a7626c0206621-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":126,"real_height_2x":253}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Напишем цикл для каждого <strong>film</strong> в списке <strong>films</strong>. Пока скопируем команду по поиску <strong>link</strong> и посмотрим, что там нужно поправить. Нам не нужен запрос к первому <strong>div</strong>, потому что до этого мы обратились к нему через <strong>findAll</strong> — заменим его на <strong>film</strong>. Повторим так с каждым элементом.","type":"p","className":""},{"data":{"id":2901,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/71e2318613024ff18c24886f144506fe-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/71e2318613024ff18c24886f144506fe-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":204,"real_height_2x":408},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/71e2318613024ff18c24886f144506fe-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/71e2318613024ff18c24886f144506fe-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":204,"real_height_2x":408}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Создадим переменную <strong>data</strong>, в который будем добавлять все переменные, которые запрашиваем.","type":"p","className":""},{"data":{"id":2902,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/31632ce734ff4166b804b087b337ad04-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/31632ce734ff4166b804b087b337ad04-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":280,"real_height_2x":559},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/31632ce734ff4166b804b087b337ad04-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/31632ce734ff4166b804b087b337ad04-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":280,"real_height_2x":559}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Запустим код и посмотрим, что отображается в <strong>data</strong>.","type":"p","className":""},{"data":{"id":2903,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/d9eca3cde6824f52947516dae043e722-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/d9eca3cde6824f52947516dae043e722-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":556,"real_height_2x":1112},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/d9eca3cde6824f52947516dae043e722-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/d9eca3cde6824f52947516dae043e722-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":556,"real_height_2x":1112}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Все ровно так, как нам было нужно. Осталось только разобраться, как собирать данные и со следующих страниц. Если мы перейдем на вторую страницу списка, то увидим, что ссылка в адресной строке браузера изменилась —&nbsp;там появилось <strong>page=2</strong>.&nbsp;","type":"p","className":""},{"data":{"id":2904,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/d0b71bea867d41c38fedaf03acb3a0bd-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/d0b71bea867d41c38fedaf03acb3a0bd-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":338,"real_height_2x":676},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/d0b71bea867d41c38fedaf03acb3a0bd-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/d0b71bea867d41c38fedaf03acb3a0bd-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":338,"real_height_2x":676}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"То есть, нам нужно передать этот параметр в цикл. Создадим перед циклом переменную <strong>url</strong> и воспользуемся <a href=\"https://istories.media/workshops/2020/11/18/vvedenie-v-python-chast-3/\" data-type=\"usual\" target=\"_blank\">методом f-строк</a>, чтобы поместить внутрь фигурных скобок тот параметр, который нам нужен — номер страницы. Назовем параметр <strong>p</strong> и поместим его в цикл в промежутке от <strong>1</strong> до <strong>6</strong>. ","type":"p","className":""},{"data":"Переменную <strong>data</strong> при этом нужно вынести в начало кода, чтобы она не перезаписывалась с каждым новым циклом, а дополнялась. После этого скопируем код для запуска <strong>Requests</strong> и <strong>Beautifulsoup</strong>.&nbsp;","type":"p","className":""},{"data":{"id":2908,"data":{"images":[{"credit":"Извините, на скрине ошибка: последнее значение в range должно быть 6, иначе скрипт пройдет только по четырем страницам","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/320ec112700a4c19b98a1cc80c2b88fa-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/320ec112700a4c19b98a1cc80c2b88fa-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":424,"real_height_2x":848},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/320ec112700a4c19b98a1cc80c2b88fa-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/320ec112700a4c19b98a1cc80c2b88fa-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":424,"real_height_2x":848}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Код готов к работе. Но еще мы советуем добавить временные промежутки между запросами, чтобы не перегружать сервер, к которому обращаемся. Вернемся в область, где ранее импортировали <strong>Beautifulsoup</strong>, и импортируем из библиотеки <strong>time</strong> функцию <strong>sleep</strong>.&nbsp;","type":"p","className":""},{"data":{"id":2909,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/ae380e115b7740ed95b343d45145c1b9-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/ae380e115b7740ed95b343d45145c1b9-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":372,"real_height_2x":745},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/ae380e115b7740ed95b343d45145c1b9-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/ae380e115b7740ed95b343d45145c1b9-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":372,"real_height_2x":745}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"В основной код допишем, чтобы между запросами проходило 3 секунды. Чтобы в реальном времени проверить работоспособность скрипта, добавим команду <strong>print</strong>.","type":"p","className":""},{"data":{"id":2910,"data":{"images":[{"credit":"Ошибка с позапрошлого скрина исправлена: последнее значение в range — 6, поэтому скрипт прошел по всем пяти страницам","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/744998daabd24b09955f0901d8211d33-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/744998daabd24b09955f0901d8211d33-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":594,"real_height_2x":1188},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/744998daabd24b09955f0901d8211d33-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/744998daabd24b09955f0901d8211d33-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":594,"real_height_2x":1188}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Все должно сработать. Если сейчас снова проверить длину нашего списка командой <strong>len(data)</strong>, там будет 250 — как и в топе «КиноПоиска». Теперь сохраним наши данные в таблицу. Снова вернемся в область импорта и добавим туда <a href=\"https://istories.media/workshops/2021/03/05/python-biblioteka-pandas-chast-1/\" data-type=\"usual\" target=\"_blank\">Pandas</a> и используем его для записи в <strong>csv</strong>.&nbsp;","type":"p","className":""},{"data":{"id":2913,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/8323eb8ef0d34ba58e8fcfc657dffb1e-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/8323eb8ef0d34ba58e8fcfc657dffb1e-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":274,"real_height_2x":548},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/8323eb8ef0d34ba58e8fcfc657dffb1e-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/8323eb8ef0d34ba58e8fcfc657dffb1e-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":274,"real_height_2x":548}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"Введем названия для колонок —&nbsp;пусть они дублируют названия переменных, которые мы присвоили ранее (не забудьте поместить их в 'кавычки'). И после этого экспортируем наши данные.","type":"p","className":""},{"data":{"id":2914,"data":{"images":[{"credit":"Код для импорта данных в таблицу csv","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/8b3dbd2f173c413687fb6d5c13d77d66-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/8b3dbd2f173c413687fb6d5c13d77d66-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":124,"real_height_2x":247},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/8b3dbd2f173c413687fb6d5c13d77d66-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/8b3dbd2f173c413687fb6d5c13d77d66-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":124,"real_height_2x":247}]},{"credit":"Итоговая таблица в csv","imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/254299b4e8024a93bdc674bfd020167d-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/254299b4e8024a93bdc674bfd020167d-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":534,"real_height_2x":1069},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/254299b4e8024a93bdc674bfd020167d-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/254299b4e8024a93bdc674bfd020167d-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":534,"real_height_2x":1069}]}]},"category":"two-images-embed"},"type":"two-images-embed"},{"data":"Последнее, что мы разберем на этом уроке —&nbsp;как научить код не ломаться и продолжать работу, если у фильма не будет указано какого-то из параметров. Пропишем, например, исключение для рейтинга фильма (<strong>rate</strong>) — если его нет, будет стоять прочерк.","type":"p","className":""},{"data":{"id":2915,"data":{"images":[{"imagesList":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/1f45de83f2b544fe918ac9ada00fedde-1200xautopx_1x.webp","url_2x":"https://static.istories.media/uploaded/images/1f45de83f2b544fe918ac9ada00fedde-1200xautopx_2x.webp","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":402,"real_height_2x":805},{"format":"png","url_1x":"https://static.istories.media/uploaded/images/1f45de83f2b544fe918ac9ada00fedde-1200xautopx_1x.png","url_2x":"https://static.istories.media/uploaded/images/1f45de83f2b544fe918ac9ada00fedde-1200xautopx_2x.png","for_width":1200,"for_height":"auto","real_width_1x":1200,"real_width_2x":2400,"real_height_1x":402,"real_height_2x":805}]}]},"category":"image-embed"},"type":"image-embed"},{"data":"«КиноПоиск»&nbsp;поддался нашему скрипту без проблем, но бывают сайты, запросы с которых не хотят отдавать нам необходимую информацию. Как с этим справиться —&nbsp;расскажем в следующих уроках.","type":"p","className":""},{"data":"Если у вас что-то не получилось — пишите в наш <a href=\"https://t.me/istories_helloworld\" data-type=\"usual\" target=\"_blank\">Telegram-чат</a>, постараемся подсказать.","type":"p","className":""}],"created_at_date":"2021-09-10","updated_at_date":null,"created_at_date_time":null,"updated_at_date_time":null,"is_exclusive":false,"is_urgent":false,"initially_published_at":"2021-09-14T19:15:34.002Z","has_additional_facts":false,"locale":"ru","has_visualization_without_fallback":false,"spec_project":null,"header_secondary":"","warning":"","is_translated_by_ai":false,"with_donation_banner":true,"donation_banner_header":"","donation_banner_text":"","media_outlet__codename":null,"with_authors_request_banner":false,"faq":[],"_path":"/workshops/2021/09/10/parsing-s-pomoshchyu-python-urok-1/","is_published":true,"authors_list":[{"id":8,"lead":"Главная редакторка «Важных историй»","_path":"alesya-marokhovskaya","avatar":[{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-896x504px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-896x504px_2x.webp","for_width":896,"for_height":504,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":896,"real_width_2x":1792,"real_height_1x":504,"real_height_2x":1008},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-896x504px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-896x504px_2x.jpg","for_width":896,"for_height":504,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":896,"real_width_2x":1792,"real_height_1x":504,"real_height_2x":1008},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-688x387px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-688x387px_2x.webp","for_width":688,"for_height":387,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":688,"real_width_2x":1376,"real_height_1x":387,"real_height_2x":774},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-688x387px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-688x387px_2x.jpg","for_width":688,"for_height":387,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":688,"real_width_2x":1376,"real_height_1x":387,"real_height_2x":774},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-416x234px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-416x234px_2x.webp","for_width":416,"for_height":234,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":416,"real_width_2x":832,"real_height_1x":234,"real_height_2x":468},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-416x234px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-416x234px_2x.jpg","for_width":416,"for_height":234,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":416,"real_width_2x":832,"real_height_1x":234,"real_height_2x":468},{"format":"webp","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-336x189px_1x.webp","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-336x189px_2x.webp","for_width":336,"for_height":189,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":336,"real_width_2x":672,"real_height_1x":188,"real_height_2x":378},{"format":"jpg","url_1x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-336x189px_1x.jpg","url_2x":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-336x189px_2x.jpg","for_width":336,"for_height":189,"original_url":"https://static.istories.media/uploaded/images/12285015ded6416c9ce475e3a939d7f7-original.jpg","real_width_1x":336,"real_width_2x":672,"real_height_1x":188,"real_height_2x":378}],"lead_en":"Editor-in-chief","ordering":null,"position":"Редакторка","is_public":true,"last_name":"Мароховская","first_name":"Алеся","position_en":"Editor","last_name_en":"Marokhovskaya","first_name_en":"Alesya"}],"external_authors_list":[],"editors_list":[],"external_editors_list":[],"participants_list":[],"external_participants_list":[],"partners_list":[],"case":null,"translated_material":null,"audio_material":null,"text_material":null,"id":329,"topics":[],"meta":{"og_title":"","og_description":"","twitter_title":"","twitter_description":"","og_image":"https://static.istories.media/uploaded/images/share/9717a26af6e74760b549b02369aa6090.jpg","twitter_image":"https://static.istories.media/uploaded/images/share/9717a26af6e74760b549b02369aa6090.jpg","vk_image":"https://static.istories.media/uploaded/images/share/vk/b124bc62a3e448649a8ed7840ba07440.jpg"},"tags":["сбор данных","beautifulsoup","python","requests","ddj","скрейпинг","парсинг"],"playlist":null,"socialMediaBanners":[{"id":10,"text":"У пропаганды есть миллиарды из бюджета. У нас — только вы","link":"","codename":"donation"},{"id":14,"text":"Список погибших и пропавших без вести российских военных","link":"","codename":"haron"},{"id":18,"text":"","link":"","codename":"mobile_app"},{"id":6,"text":"Оставайтесь на связи: подпишитесь на нашу рассылку","link":"","codename":"newsletter"}]}},"staticQueryHashes":["764694655"],"slicesMap":{}}