Extract content of <script> with python inf Beautiful Soup
1/ I get my data with this code and then im trying to extract the value of the attribute "sku":
import requests
from bs4 import BeautifulSoup
def request():
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
req = requests.get('https://www.zalando.de/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html', headers=headers)
fetch_info(req.text)
def fetch_info(html):
soup = BeautifulSoup(html, "html.parser")
paragraphs = str(soup.find_all('script', type="application/ld+json"))
print(paragraphs)
request()
2/ this is the data that i get. my goal is to extract the value of the attribute "sku" but i dont know how to handle with this data:
[{"@context":"http://schema.org","@type":"Product","aggregateRating":{"@type":"AggregateRating","bestRating":5,"ratingValue":"4.4","ratingCount":32,"worstRating":1,"reviewCount":20},"brand":{"@type":"Brand","name":"Nike Sportswear"},"color":"white/black/sail/team orange/weiß","image":["https://img01.ztat.net/article/spp-media-p1/5aab2cb0e8de49eba3a3a13b58e97639/f183297517d64ec9b36f25f93c92d336.jpg?imwidth=103","https://img01.ztat.net/article/spp-media-p1/dd5d970c70c34b5fb78d96dbba4682c8/56ffd527ef7b479bb4dccd0c4d950816.jpg?imwidth=103&filter=packshot","https://img01.ztat.net/article/spp-media-p1/0fdf0aede23e4440ad555e07b39ba659/60ad2f546cf94245abf63ad95170b4db.jpg?imwidth=103","https://img01.ztat.net/article/spp-media-p1/6ceb2462605e4272af66895a2267e619/4a6b815ae0e44d8b9cdc3d5cdd871d79.jpg?imwidth=103","https://img01.ztat.net/article/spp-media-p1/cea4e4de28144aca96579f6e5c390196/1fac999507a84688a2299c8ca0af11bd.jpg?imwidth=103","https://img01.ztat.net/article/spp-media-p1/ef435f76c0934820875e930679b1d176/ac3547823f4b458ba1243f1338265394.jpg?imwidth=103","https://img01.ztat.net/article/spp-media-p1/f93228b4eacb48f88c4b781d30495120/f75ce631aa3141aaaea0590d82fb4993.jpg?imwidth=103","https://img01.ztat.net/article/spp-media-p1/a753a62466c34f029c8b677e50025ef4/88b91b412cb74fe7a6b524ab022668a3.jpg?imwidth=103"],"itemCondition":"http://schema.org/NewCondition","manufacturer":"Nike Sportswear","name":"BLAZER MID '77 JUMBO UNISEX - Sneaker high - white/black/sail/team orange","offers":[{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110035000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110040000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110045000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110050000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110055000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110060000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110065000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110070000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110075000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110080000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110085000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110090000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/OutOfStock","price":"99.95","priceCurrency":"EUR","sku":"NI112N02S-A110095000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110100000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110105000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110110000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110115000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110120000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110125000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110130000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110140000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"},{"@type":"Offer","availability":"http://schema.org/InStock","price":"109.95","priceCurrency":"EUR","sku":"NI112N02S-A110150000","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html"}],"review":[{"@type":"Review","author":{"@type":"Person","name":"Joel"},"datePublished":"2022-01-19","description":"Sind nicht schön.","reviewRating":{"@type":"Rating","bestRating":5,"worstRating":1,"ratingValue":"1"}},{"@type":"Review","author":{"@type":"Person","name":"Laura"},"datePublished":"2022-01-15","description":"Tolle Passform! Sehr gute Qualität!","reviewRating":{"@type":"Rating","bestRating":5,"worstRating":1,"ratingValue":"5"}},{"@type":"Review","author":{"@type":"Person","name":"Fabienne"},"datePublished":"2022-01-13","description":"super geiler Sneaker. Dieses Modell ist viel bequemer als der normale Blazer wegen des weichen Abschlusses oben. Ist gemacht wie eine Socke.. Top...","reviewRating":{"@type":"Rating","bestRating":5,"worstRating":1,"ratingValue":"5"}},{"@type":"Review","author":{"@type":"Person","name":"Fouad"},"datePublished":"2022-01-07","description":"Sehr chillig und sehr stylisch auf locker","reviewRating":{"@type":"Rating","bestRating":5,"worstRating":1,"ratingValue":"5"}},{"@type":"Review","author":{"@type":"Person","name":"Zalando Kunde"},"datePublished":"2022-01-03","description":"Sieht top aus und ist sehr bequem.","reviewRating":{"@type":"Rating","bestRating":5,"worstRating":1,"ratingValue":"5"}},{"@type":"Review","author":{"@type":"Person","name":"Dzafer"},"datePublished":"2021-12-26","description":"Leider Kleberreste am Schuh gehabt, sonst war alles top.","reviewRating":{"@type":"Rating","bestRating":5,"worstRating":1,"ratingValue":"3"}},{"@type":"Review","author":{"@type":"Person","name":"anna"},"datePublished":"2021-12-22","description":"alles perfekt","reviewRating":{"@type":"Rating","bestRating":5,"worstRating":1,"ratingValue":"5"}},{"@type":"Review","author":{"@type":"Person","name":"Sara"},"datePublished":"2021-12-18","description":"Super bequemer Sneaker, sieht dabei noch schick aus. Durch den elastischen Schaft viel einfacher reinzuschlüpfen, als bei dem normalen Modell!","reviewRating":{"@type":"Rating","bestRating":5,"worstRating":1,"ratingValue":"5"}},{"@type":"Review","author":{"@type":"Person","name":"Zalando Kunde"},"datePublished":"2021-12-16","description":"Stylischer, bequemer schuh","reviewRating":{"@type":"Rating","bestRating":5,"worstRating":1,"ratingValue":"5"}},{"@type":"Review","author":{"@type":"Person","name":"Asli"},"datePublished":"2022-01-04","description":"Einfach nur Bomben Qualität sieht getragen super aus gr stimmt ich musste mir sonst immer eine nr größer nehmen bei Nike bei diesem Model passte meine Schuhgröße. 👍👍👍👍","reviewRating":{"@type":"Rating","bestRating":5,"worstRating":1,"ratingValue":"5"}}],"sku":"NI112N02S-A11","url":"/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html","description":" Nike Sportswear BLAZER MID '77 JUMBO UNISEX - Sneaker high - white/black/sail/team orange für 109,95 € (2022-01-20) versandkostenfrei bei Zalando bestellen."}]
I already read this post but it doesnt worked for me: Extract content of <script> with BeautifulSoup
Solution 1:
There are different things to point out:
-
Instead of
find_all()
that would return a resultset usefind()
, cause there is only one script tag the would match. -
Intstead of converting the tag and its content into a
str()
use.text
to extract the content. -
Main issue is that you have to replace all
"
in your extracted text, cause per se it is no valid json if you print, it would look like:'{"@context":"http://schema.org","@type":"Product","aggregateRating"...'
Fix:
paragraphs = json.loads(soup.find('script', type='application/ld+json').text.replace(""", "\""))
Short code:
url = 'https://www.zalando.de/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
req = requests.get(url, headers=headers)
soup = BeautifulSoup(req.text, "html.parser")
jsonData = json.loads(soup.find('script', type='application/ld+json').text.replace(""", "\""))
JSON:
{'@context': 'http://schema.org', '@type': 'Product', 'aggregateRating': {'@type': 'AggregateRating', 'bestRating': 5, 'ratingValue': '4.4', 'ratingCount': 32, 'worstRating': 1, 'reviewCount': 20}, 'brand': {'@type': 'Brand', 'name': 'Nike Sportswear'}, 'color': 'white/black/sail/team orange/weiß', 'image': ['https://img01.ztat.net/article/spp-media-p1/5aab2cb0e8de49eba3a3a13b58e97639/f183297517d64ec9b36f25f93c92d336.jpg?imwidth=103', 'https://img01.ztat.net/article/spp-media-p1/dd5d970c70c34b5fb78d96dbba4682c8/56ffd527ef7b479bb4dccd0c4d950816.jpg?imwidth=103&filter=packshot', 'https://img01.ztat.net/article/spp-media-p1/0fdf0aede23e4440ad555e07b39ba659/60ad2f546cf94245abf63ad95170b4db.jpg?imwidth=103', 'https://img01.ztat.net/article/spp-media-p1/6ceb2462605e4272af66895a2267e619/4a6b815ae0e44d8b9cdc3d5cdd871d79.jpg?imwidth=103', 'https://img01.ztat.net/article/spp-media-p1/cea4e4de28144aca96579f6e5c390196/1fac999507a84688a2299c8ca0af11bd.jpg?imwidth=103', 'https://img01.ztat.net/article/spp-media-p1/ef435f76c0934820875e930679b1d176/ac3547823f4b458ba1243f1338265394.jpg?imwidth=103', 'https://img01.ztat.net/article/spp-media-p1/f93228b4eacb48f88c4b781d30495120/f75ce631aa3141aaaea0590d82fb4993.jpg?imwidth=103', 'https://img01.ztat.net/article/spp-media-p1/a753a62466c34f029c8b677e50025ef4/88b91b412cb74fe7a6b524ab022668a3.jpg?imwidth=103'], 'itemCondition': 'http://schema.org/NewCondition', 'manufacturer': 'Nike Sportswear', 'name': 'BLAZER MID '77 JUMBO UNISEX - Sneaker high - white/black/sail/team orange', 'offers': [{'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110035000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110040000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110045000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110050000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110055000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110060000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110065000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110070000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110075000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110080000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/OutOfStock', 'price': '99.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110085000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110090000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/OutOfStock', 'price': '99.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110095000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110100000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110105000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110110000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110115000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110120000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110125000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110130000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110140000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}, {'@type': 'Offer', 'availability': 'http://schema.org/InStock', 'price': '109.95', 'priceCurrency': 'EUR', 'sku': 'NI112N02S-A110150000', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html'}], 'review': [{'@type': 'Review', 'author': {'@type': 'Person', 'name': 'Joel'}, 'datePublished': '2022-01-19', 'description': 'Sind nicht schön.', 'reviewRating': {'@type': 'Rating', 'bestRating': 5, 'worstRating': 1, 'ratingValue': '1'}}, {'@type': 'Review', 'author': {'@type': 'Person', 'name': 'Laura'}, 'datePublished': '2022-01-15', 'description': 'Tolle Passform! Sehr gute Qualität!', 'reviewRating': {'@type': 'Rating', 'bestRating': 5, 'worstRating': 1, 'ratingValue': '5'}}, {'@type': 'Review', 'author': {'@type': 'Person', 'name': 'Fabienne'}, 'datePublished': '2022-01-13', 'description': 'super geiler Sneaker. Dieses Modell ist viel bequemer als der normale Blazer wegen des weichen Abschlusses oben. Ist gemacht wie eine Socke.. Top...', 'reviewRating': {'@type': 'Rating', 'bestRating': 5, 'worstRating': 1, 'ratingValue': '5'}}, {'@type': 'Review', 'author': {'@type': 'Person', 'name': 'Fouad'}, 'datePublished': '2022-01-07', 'description': 'Sehr chillig und sehr stylisch auf locker', 'reviewRating': {'@type': 'Rating', 'bestRating': 5, 'worstRating': 1, 'ratingValue': '5'}}, {'@type': 'Review', 'author': {'@type': 'Person', 'name': 'Zalando Kunde'}, 'datePublished': '2022-01-03', 'description': 'Sieht top aus und ist sehr bequem.', 'reviewRating': {'@type': 'Rating', 'bestRating': 5, 'worstRating': 1, 'ratingValue': '5'}}, {'@type': 'Review', 'author': {'@type': 'Person', 'name': 'Dzafer'}, 'datePublished': '2021-12-26', 'description': 'Leider Kleberreste am Schuh gehabt, sonst war alles top.', 'reviewRating': {'@type': 'Rating', 'bestRating': 5, 'worstRating': 1, 'ratingValue': '3'}}, {'@type': 'Review', 'author': {'@type': 'Person', 'name': 'anna'}, 'datePublished': '2021-12-22', 'description': 'alles perfekt', 'reviewRating': {'@type': 'Rating', 'bestRating': 5, 'worstRating': 1, 'ratingValue': '5'}}, {'@type': 'Review', 'author': {'@type': 'Person', 'name': 'Sara'}, 'datePublished': '2021-12-18', 'description': 'Super bequemer Sneaker, sieht dabei noch schick aus. Durch den elastischen Schaft viel einfacher reinzuschlüpfen, als bei dem normalen Modell!', 'reviewRating': {'@type': 'Rating', 'bestRating': 5, 'worstRating': 1, 'ratingValue': '5'}}, {'@type': 'Review', 'author': {'@type': 'Person', 'name': 'Zalando Kunde'}, 'datePublished': '2021-12-16', 'description': 'Stylischer, bequemer schuh', 'reviewRating': {'@type': 'Rating', 'bestRating': 5, 'worstRating': 1, 'ratingValue': '5'}}, {'@type': 'Review', 'author': {'@type': 'Person', 'name': 'Asli'}, 'datePublished': '2022-01-04', 'description': 'Einfach nur Bomben Qualität sieht getragen super aus gr stimmt ich musste mir sonst immer eine nr größer nehmen bei Nike bei diesem Model passte meine Schuhgröße. 👍👍👍👍', 'reviewRating': {'@type': 'Rating', 'bestRating': 5, 'worstRating': 1, 'ratingValue': '5'}}], 'sku': 'NI112N02S-A11', 'url': '/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html', 'description': ' Nike Sportswear BLAZER MID '77 JUMBO UNISEX - Sneaker high - white/black/sail/team orange für 109,95\xa0€ (2022-01-20) versandkostenfrei bei Zalando bestellen.'}
Example
Note: changed behavior of defs a bit, cause fetch_info should reference to request, ...
import requests, json
from bs4 import BeautifulSoup
def request(url):
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
req = requests.get(url, headers=headers)
return req
def fetch_info(url):
soup = BeautifulSoup(request(url).text, "html.parser")
paragraphs = json.loads(soup.find('script', type='application/ld+json').text.replace(""", "\""))
return paragraphs
for item in fetch_info('https://www.zalando.de/nike-sportswear-blazer-mid-77-jumbo-unisex-sneaker-high-whiteblacksailteam-orange-ni112n02s-a11.html')['offers']:
print(item['sku'])
Output
NI112N02S-A110035000
NI112N02S-A110040000
NI112N02S-A110045000
NI112N02S-A110050000
NI112N02S-A110055000
NI112N02S-A110060000
NI112N02S-A110065000
NI112N02S-A110070000
NI112N02S-A110075000
NI112N02S-A110080000
NI112N02S-A110085000
NI112N02S-A110090000
NI112N02S-A110095000
...