Мы с важной новостью: с 28 февраля 2025 года сервис Хабр Фриланс прекратит свою работу.

Купить услуги можно до 28 февраля 2025, но пополнить баланс уже нельзя. Если на вашем счете остались средства, вы можете потратить их на небольшие услуги — служба поддержки готова поделиться бонусами, на случай, если средств немного не хватает.
R50 07c3e9e80be2cfefed573f9697c0b5a9
Python-Developer

Парсинг мексиканского новостного сайта "Diariopresente.mx"

Добавлено 14 ноя 2022 в 05:34
Ссылка на GitHub: scraping_diariopresente.mx

Цель
Заказчик хотел собрать данные о статьях с новостного сайта. Необходимо было собрать данные (Дата, Заголовок, URL) по всем статьям на сайте и записать их в сsv файл

Решение
Парсинг любого сайта начинается с анализа и планирования работы. Первый шаг — просмотреть сайт, чтобы понять, с чем нам приходится иметь дело.

Навигация по сайту классически расположена на верхней панели. Сам сайт очень простой, даже слишком простой. Он состоит только из страниц, перечисленных в навигации по сайту и страниц статей. Всего на сайте 13 разделов. Но нас интересуют только 11 из них. Так как первый раздел является главной страницей сайта, собирая несколько статей со всех остальных разделов. А последний раздел вообще не содержит статей. То есть наша задача проанализировать эти 11 разделов и собрать из них информацию.

При анализе разделов мы видим, что все разделы имеют одинаковый рисунок. То есть нам достаточно понять, как собирать информацию с одного раздела. А затем таким же образом пройтись по всем остальным разделам.

Каждый раздел содержит 10 статей и кнопку «Еще новости», которая загружает следующие 10 статей. Сразу складывается впечатление, что здесь работает Java Script для загрузки дополнительных статей. Однако я бы сначала изучил HTML этого сайта. Дело в том, что сайт довольно простой и небольшой. И такие сайты редко имеют API. При анализе HTML сайта видим, что загрузки через Java Script здесь нет. Статьи изначально присутствуют на странице, просто скрыты от пользователя стилем display:none. При нажатии на кнопку «Еще новости» стиль display:none удаляется и статьи становятся видимыми. То есть, как мы и предполагали, никакого API здесь нет. Таким образом, задача сводится к следующим действиям:
1. Получите HTML-код страницы сайта с помощью get запроса.
2. Соберите необходимую информацию с HTML-страницы с помощью BeautifulSoup
3. Записать информацию в файл с расширением сsv
155d828f2f D0401e34c6 589367cc9b 4e21e7f73f 27e3b097fa