CoderCastrov logo
CoderCastrov
Парсер

Как извлечь данные с веб-сайта с помощью BeautifulSoup

Как извлечь данные с веб-сайта с помощью BeautifulSoup
просмотров
1 мин чтение
#Парсер
Table Of Content

    Извлечение данных - это обычная задача при работе с парсингом веб-страниц. BeautifulSoup - это библиотека для разбора HTML, которая упрощает извлечение данных с веб-сайта, просматривая его исходный код. В этом руководстве мы узнаем, как извлечь данные из

    Существуют два основных способа извлечения данных с веб-сайта:

    • Использование API (если доступно) для получения данных.
    • Получение доступа к HTML-коду веб-страницы и извлечение полезной информации/данных из него.

    В этой статье мы извлечем Топ-100 песен года 1970 года из журнала Billboard из списка Billboard Year-End Hot 100 singles of 1970.

    Задача:

    • Выполнить парсинг веб-страницы и извлечь все 100 песен с их исполнителями.
    • Создать словарь на языке Python, который содержит название сингла в качестве ключа и список исполнителей в качестве значения.

    Установка Нам нужно установить requests и bs4. Модуль requests позволяет отправлять HTTP-запросы с использованием Python. Beautiful Soup (bs4) - это библиотека Python для извлечения данных из HTML и XML файлов.

    pip install requests
    pip install bs4

    Импорт библиотек

    import requests
    from bs4 import BeautifulSoup

    Отправка запроса

    url = "https://en.wikipedia.org/wiki/Billboard_Year-End_Hot_100_singles_of_1970"
    response = requests.get(url)
    print(response.url) # печать URL
    response # статус ответаsongSoup = BeautifulSoup(response.text) # Объект BeautifulSoupdata_dictionary = {}for song in songSoup.findAll('tr')[1:101]: # цикл по индексу от 1 до 101, потому что findAll('tr') содержит заголовки таблицы
      # Печать 100 строк таблицы.............
      # print(song)     title = song.findAll('a')[0].string  artist = song.findAll('a')[1].string
      # Печать названий и исполнителей.............
      print(title, ',', artist)  # Печать словаря.............
      data_dictionary[title] = [artist]
    print(data_dictionary)