Устранение проблем с атрибутами данных с помощью Python - PullRequest
1 голос
/ 22 октября 2019

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

Вот пример HTML-кода, который я пытаюсь очистить

<div class="product-card" id="itemprod797157_128" data-brand="NIKE" data-prodid="prod797157" data-productid="prod797157553558128" data-baseurl="/store/product/mens-air-jordan-retro-1-low-basketball-shoes/prod797157?" data-colordescription="White/Black/Starfish" data-styleid="553558" data-colorid="128">

Я хочу очистить атрибут data-brand, но у меня возникают некоторые проблемы.

вот мой код:

import pandas as pd
import requests
from bs4 import BeautifulSoup

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}
data2 = requests.get("https://www.finishline.com/store/men/shoes/casual/_/N-1q3xsyk?icid=LP_mgl_C_menslpcategorycasualshoes_PDCT",headers=headers)
soup2 = BeautifulSoup(data2.text, 'html.parser')

main_column = soup2.find(id="mainColumn")

products = main_column.find_all(class_='product-card')

price = main_column.find_all(class_='fullPrice')

name = main_column.find_all(class_='product-name')

brand = [item['data-brand'] for item in main_column.find_all('class', attrs={'data-brand' : True})]

print(brand)

мой код возвращает []

Как я могу очистить определенный атрибут бренда данных?

1 Ответ

0 голосов
/ 22 октября 2019

Должен сказать, что я новичок и не могу объяснить, почему эта строка не работает:

brand = [item['data-brand'] for item in main_column.find_all('class', attrs={'data-brand' : True})]

, но я попытался найти класс "product-card" и затем выбрал'data-brand' из списка attrs выглядит следующим образом:

brands = [item.attrs['data-brand'] for item in main_column.find_all(class_="product-card")]

Возвращает:

['NIKE', 'NIKE', 'NIKE', 'ADIDAS', 'NIKE', 'ADIDAS', 'NIKE', 'NIKE', 'NIKE', 'NIKE', 'NIKE', 'NIKE']

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...