Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2021, 12:43   #1
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию Как получить данные с data-options?

Всем привет, делаю парсинг одного ресурса при помощи BeautifulSoup и столкнулся с задачей получения данных из
data-options
структура
Код:
<div class="fs-product-card__description">
<h3 class="u-p2">
Snickers Chocolate Bar
</h3>
<p class="u-color-half-dark-grey u-p3">50g</p>
</div>
</a>
<div class="js-product-card-footer fs-product-card__footer-container" data-options='{
                 "productId" : "5030484-EA-000PNS" ,
                 "productName": "Snickers Chocolate Bar",
                 "productVariants" :[],
                 "restricted" : "false" ,
                 "tobacco" : false,
                 "liquor" : false ,
                 "BoozeGateConfirmationHeader" : "Are you 18 or older?" ,
                 "BoozeGateConfirmationBody" : "I confirm that I am over 18 years of age or over and that anyone collecting my order is also 18 years of age or over." ,
                 "loginRegisterModalTitle" : "You need to login first" ,
                 "loginRegisterBodyCopy" : "Sign up or login to access my favourites" ,
                 "ProductDetails" : {
                 "PriceMode" :"ea",
                 "PricePerItem" : "1.39" ,
                 "HasMultiBuyDeal" : false ,
                "MultiBuyDeal" : "" ,
                "PricePerBaseUnitText" : "" ,
                "ClubCardPriceText": null,
                "MultiBuyBasePrice" : "" ,
                "MultiBuyPrice" : "" ,
                "MultiBuyQuantity" : "" ,
                "ProductLimitText" : "",
                "PromoBadgeImageLabel": "Everyday Low",
                "ShowPromotionViewAllModal": false,
                 "registrationURL": "/shop/signup"
                }}'>
</div>
Код:
import requests
from bs4 import BeautifulSoup

url = 'https://www.paknsave.co.nz/shop/Search?q=snickers'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')

price = soup.find_all('div', class_='fs-product-card__footer-container')
print(price[0])
http://screen.mindklab.com/incoming/...8484b7114c.png
по class нормально достает данные, а как обратиться и получить данные из data-options никак не соображу

Последний раз редактировалось Noor; 30.08.2021 в 12:49.
Noor вне форума Ответить с цитированием
Старый 30.08.2021, 12:59   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
print([item['data-options'] for item in soup.find_all('div', class_='fs-product-card__footer-container', attrs={'data-options' : True})])
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 30.08.2021, 14:04   #3
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию

Спасибо за подсказку, буду работать дальше
Noor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Picture.Data = {как получить этот код?} Crystallon Общие вопросы Delphi 4 02.05.2015 18:15
Как получить данные из бд? Dkey PHP 3 28.08.2012 23:08
как получить данные из TEdit korsmile Компоненты Delphi 2 11.02.2011 02:22
Как программно получить путь до папки Application Data для пользователя LocalService? bzzz Win Api 3 23.09.2009 09:30
Как получить данные из ftWideMemo? Хитрец БД в Delphi 1 17.05.2009 02:07