Как парсить Steam с использованием Requests и BeautifulSoup4 Часть 2
Table Of Content
Хорошо, продолжим. В этом проекте я не буду парсить всё содержимое сайта, только некоторое.
Вот список того, что я буду парсить:
- Название игры
- Цена
- Жанр
Откройте свой браузер и введите "steam" или просто нажмите здесь. Прокрутите вниз, пока не найдете следующее изображение:
Там вы можете увидеть название, цену и жанр, это то, что мы будем брать. В этом проекте я использую браузер Chrome, просто щелкните правой кнопкой мыши и выберите "Инспектировать", затем "Сеть", и перезагрузите браузер. Выберите тот, который находится во вкладке "Имя", во вкладке "Заголовки" прокрутите вниз, пока не найдете "User-Agent", скопируйте его, а затем вставьте в свою среду разработки.
User-agent нужен, чтобы при доступе к сайту его не обнаружили как бота, а прямо из браузера. Вернитесь в свою среду разработки, сохраните результат в переменную, например, здесь я сохраняю его в переменную header. Затем скопируйте URL-адрес сайта Steam, вставьте его в свою среду разработки и сохраните в переменную. Создайте новую переменную, затем введите:
requests.get(url, headers=headers)
чтобы проверить, нет ли кода ошибки, попробуйте вывести его на экран, если результат равен 200, значит запрос выполнен успешно. Если результат отличается от этого, возможно, есть ошибка в вашем коде. Еще одна возможность заключается в том, что сайт находится на техническом обслуживании.
поскольку в этом проекте нужно получить только данные в виде обычного текста, я добавил "html.parser" с целью упростить обработку данных позже. Например, вы хотите создать файл в формате CSV, xlsx, чтобы его было легко прочитать тем, у кого нет программистского опыта. Я также добавил .text, чтобы результаты не смешивались с тегами HTML.
для тестирования попробуйте вывести на экран строку кода выше, если результат будет таким, как на изображении ниже, это означает, что это работает. Если возникнет ошибка, попробуйте обратить внимание на написание, возможно, опечатка или что-то еще.
Результат выше - это главная страница сайта Steam в виде только текста. Теперь вам нужно выбрать, что парсить. Как я уже сказал выше, я возьму только название, цену и жанр. Вернитесь в браузер, щелкните правой кнопкой мыши, затем выберите "Инспектировать", нажмите "Выбрать", затем выделите часть, которую хотите спарсить.
после того, как вы выделили то, что хотите спарсить, щелкните левой кнопкой мыши, во вкладке "Элемент" есть тег html в виде тега div, отмеченного выделением. В теге div есть атрибуты class и id, здесь я буду использовать атрибут id. Скопируйте атрибут, затем создайте новую переменную для хранения атрибута id. Затем снова спарсьте каждый элемент. Здесь элементы уже включают в себя название, цену и жанр.
чтобы было легче обрабатывать данные позже, я создал новую переменную с пустым списком. Затем я добавил цикл для названия, цены и жанра. В цикле я добавил новую переменную с типом данных словарь, чтобы было легче определить категорию. Переменная с типом данных список затем добавляется.
Преобразование в файл CSV
для преобразования в формат CSV требуется библиотека из Python, называемая Pandas. В терминале введите:
pip install pandas
затем в верхней строке кода введите:
import pandas as pd
в нижней строке добавьте функцию или метод в новую переменную, затем запустите код, и автоматически появится новый файл CSV.
Это был быстрый учебник по парсингу данных с веб-сайта Steam. Увидимся в следующем уроке.