CoderCastrov logo
CoderCastrov
Парсер

Как парсить Steam с использованием Requests и BeautifulSoup4 Часть 2

Как парсить Steam с использованием Requests и BeautifulSoup4 Часть 2
просмотров
3 мин чтение
#Парсер
Table Of Content
    Steam Logo

    Хорошо, продолжим. В этом проекте я не буду парсить всё содержимое сайта, только некоторое.

    Вот список того, что я буду парсить:

    • Название игры
    • Цена
    • Жанр

    Откройте свой браузер и введите "steam" или просто нажмите здесь. Прокрутите вниз, пока не найдете следующее изображение:

    Steam website

    Там вы можете увидеть название, цену и жанр, это то, что мы будем брать. В этом проекте я использую браузер Chrome, просто щелкните правой кнопкой мыши и выберите "Инспектировать", затем "Сеть", и перезагрузите браузер. Выберите тот, который находится во вкладке "Имя", во вкладке "Заголовки" прокрутите вниз, пока не найдете "User-Agent", скопируйте его, а затем вставьте в свою среду разработки.

    Steam home page

    User-agent нужен, чтобы при доступе к сайту его не обнаружили как бота, а прямо из браузера. Вернитесь в свою среду разработки, сохраните результат в переменную, например, здесь я сохраняю его в переменную header. Затем скопируйте URL-адрес сайта Steam, вставьте его в свою среду разработки и сохраните в переменную. Создайте новую переменную, затем введите:

    requests.get(url, headers=headers)

    чтобы проверить, нет ли кода ошибки, попробуйте вывести его на экран, если результат равен 200, значит запрос выполнен успешно. Если результат отличается от этого, возможно, есть ошибка в вашем коде. Еще одна возможность заключается в том, что сайт находится на техническом обслуживании.

    Request succeeded

    поскольку в этом проекте нужно получить только данные в виде обычного текста, я добавил "html.parser" с целью упростить обработку данных позже. Например, вы хотите создать файл в формате CSV, xlsx, чтобы его было легко прочитать тем, у кого нет программистского опыта. Я также добавил .text, чтобы результаты не смешивались с тегами HTML.

    Beautifulsoup method

    для тестирования попробуйте вывести на экран строку кода выше, если результат будет таким, как на изображении ниже, это означает, что это работает. Если возникнет ошибка, попробуйте обратить внимание на написание, возможно, опечатка или что-то еще.

    Text only

    Результат выше - это главная страница сайта Steam в виде только текста. Теперь вам нужно выбрать, что парсить. Как я уже сказал выше, я возьму только название, цену и жанр. Вернитесь в браузер, щелкните правой кнопкой мыши, затем выберите "Инспектировать", нажмите "Выбрать", затем выделите часть, которую хотите спарсить.

    Looping contents

    после того, как вы выделили то, что хотите спарсить, щелкните левой кнопкой мыши, во вкладке "Элемент" есть тег html в виде тега div, отмеченного выделением. В теге div есть атрибуты class и id, здесь я буду использовать атрибут id. Скопируйте атрибут, затем создайте новую переменную для хранения атрибута id. Затем снова спарсьте каждый элемент. Здесь элементы уже включают в себя название, цену и жанр.

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

    Convert To CSV

    Преобразование в файл CSV

    для преобразования в формат CSV требуется библиотека из Python, называемая Pandas. В терминале введите:

    pip install pandas

    затем в верхней строке кода введите:

    import pandas as pd

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

    Это был быстрый учебник по парсингу данных с веб-сайта Steam. Увидимся в следующем уроке.