from bs4 import BeautifulSoup
import requests
def get_html():
r = requests.get('https://prom.ua/Sportivnye-sumki') #Менять ссылку тут
return r.text
soup = BeautifulSoup(get_html() , 'html.parser')
content = soup.find('div', class_='x-catalog__content-line')
right_col = content.find('div', class_='x-catalog-gallery')
news_list = right_col.find_all('div', class_='x-gallery-tile js-gallery-tile js-productad')
last_try = content.find_all('div', class_='x-gallery-tile__content')
print(last_try)
art_list = [] #Лист со статьями
i=0
for article in last_try:
name = article.find('a', class_='x-gallery-tile__name')['span itemprop']
price = article.find('div', class_='x-gallery-tile__price')['data-qaprice']
link = article.find('a', class_='x-gallery-tile__name')['href']
art_list.append([link,price,name])
print(art_list)
А проблема собственно заключается вот в чем: все в коде работало до добавления строки с названием товара 'name'. После этого начал ловить ошибку
KeyError: 'span itemprop'
я вроде бы понимаю на что она указывает. Но как тогда достать название товара? запечатанное в 'span'? Это подкласс получается? или я что-то не так понимаю)
</div><a class="x-gallery-tile__name" data-qaid="product_name" href="https://my.prom.ua/remote/context_ads/click_ad_v2?token=v2%3AjWH6NHZy2pv_XPOaPBL0PUmqsDbS5hE3PtFj-ayNQh73LMUJgVk1S_1RjoldWqlSjZh4lxim9TMx9vkRKNZC&campaign_id=643776&product_id=724626250&source=prom%3Acatalog&variant=&locale=ru&prices_param=&category_ids=380630" itemprop="url" rel="" target="_self"><span itemprop="name">Спортивная сумка Tiger</span></a></div>]
Мой первый вопрос на сервисе. Не нужно кидаться камнями) С радостью приму любую помощь ,будь то ссылка на обьяснение этих приколов или исправление строчки кода.
span
это уже другой тег. Его также надо найти, как вы искали a
и div
'ы.
name = article.find('span', { 'itemprop' : 'name'}).text
Первая запись в art_list
у меня получилась такая:
#['https://my.prom.ua/remote/context_ads/click_ad_v2?token=v2%3Aoy0MVCv7RAFLJSWUvHX9A76ChOns4-5xTjrUFqE_uVPBPFTxQ42EzTypMx0fcq5reeeYfFUw-La4A1D1VejS&campaign_id=281004&product_id=530423624&source=prom%3Acatalog&variant=&locale=ru&prices_param=&category_ids=380630', '245.00000', 'Спортивная сумка в стиле Nike черная экокожа']
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите, есть ли способ в JQuery удалить через remove() сразу несколько объектов с одним идентификаторам?
Функция работает некорректноПри нажатии на кнопку изменение происходит на миг и не фиксируется