Как видно из моей предыдущей статьи, просмотр веб-страниц может быть чрезвычайно полезен при анализе данных. Часто возникает одна проблема, когда вам нужны данные с веб-сайта, посвященного конкретному товару. При этом вам нужно будет получить уникальную ссылку каждого элемента, чтобы иметь возможность очистить данные для этого элемента. В этом посте я объясню, как получить данные для каждого уникального элемента.
Во-первых, давайте импортируем некоторые стандартные библиотеки:
Далее, давайте получим ссылку на первую страницу того, что мы пытаемся найти. Для наших целей давайте использовать мотоциклы в Нью-Йорке.
Используя приведенную выше ссылку, давайте распечатаем HTML-контент со страницы.
а затем распечатайте его.. это огромный кусок кода, который не слишком полезен, но мы будем использовать BeautifulSoup, как показано выше, чтобы помочь нам проанализировать HTML.
затем щелкните правой кнопкой мыши список и нажмите «Проверить», это откроет код HTML:
Мы видим, что использование класса row будет очень важно. Абстрагируем все строки.
Теперь нам нужно получить элементы мотоцикла. Мы можем сделать это с помощью следующего кода:
Пока это выглядит довольно солидно. Есть несколько элементов, которые нам нужны, в частности, такие как название, цена и URL-адрес каждого уникального элемента, чтобы мы могли использовать его позже для получения конкретных деталей.
Чтобы получить цену, мы должны использовать «промежуток» с именем класса и ценой результата.
Мы будем использовать код в нашем цикле for с атрибутами text и strip.
Похоже, у нас это неплохо получилось. Следующий элемент, который мы должны получить, это URL. Это немного сложнее, но не должно быть слишком сложным. С элементом проверки мы видим, что он имеет тег «href».
Мы можем использовать это для создания нашего кода и получения каждой уникальной ссылки.
И, наконец, давайте получим заголовок. Мы сделаем это таким же образом, используя inspect, чтобы получить класс и теги, а затем использовать их для создания нашего кода. Теперь наш код должен выглядеть так:
Чтобы получить данные с нескольких страниц, вам нужно будет создать разбиение на страницы, но сейчас давайте получим атрибуты каждого конкретного велосипеда, используя их ссылку. Итак, выбираем листинг.
Это атрибуты:
Давайте возьмем ссылку для этого конкретного мотоцикла и используем ее в качестве нашего URL-адреса для сбора данных.
Теперь мы должны осмотреть страницу, чтобы узнать, что нам действительно интересно.
Мы видим, что «attrgroup» интересна и, вероятно, полезна, а также все эти «span». Итак, давайте получим все «группы атрибутов».
Поскольку в каждом листинге будет несколько атрибутов, мы можем использовать цикл for для получения каждого из атрибутов. Внутри атрибутов есть несколько «промежутков», поэтому нам нужно найти все «промежутки», а также получить из них текст.
Мы также можем получить описание, и это выглядит довольно просто, потому что это просто «идентификатор раздела» с «телом публикации»:
При поиске класса вы используете метод «class_=», но при поиске раздела вы можете просто использовать словарь и передать «id» (или любой другой параметр, который он может иметь вместо этого).
И вот оно. Если вы хотите получить его для всех списков, вам просто нужно поместить полный код в цикл for и функцию.