На самом деле вам не нужен селен или даже BeautifulSoup, весь контент загружается с помощью xhr
запросов без необходимости javascript, как вы можете видеть на вкладке сети инструментов разработчика браузера, то есть:
import requests
h = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0',
'X-Requested-With': 'XMLHttpRequest',
}
u = "https://www.systembolaget.se/api/productsearch/search/sok-dryck/?searchquery=land&sortdirection=Ascending&site=all&fullassortment=1"
req = requests.get(u,headers=h).json()
for prod in req['ProductSearchResults']:
ProductId = prod['ProductId']
ProductNumber = prod['ProductNumber']
ProductNameBold = prod['ProductNameBold']
ProductNameThin = prod['ProductNameThin']
Volume = prod['Volume']
Price = prod['Price']
Category = prod['Category']
ProductNumberShort = prod['ProductNumberShort']
TasteAndUsage = prod['TasteAndUsage']
#... and many other product details
print(ProductNumber, ProductNameBold)
9001001 Evening Land Vineyard Seven Springs
7233401 Seven Springs
694701 Tyrrell's Wines
57801 Barceló
53701 Highland Queen
57802 Barceló
...
Чтобы получить сведения о продукте по отдельности или в пакете, введите следующий запрос:
u = "https://www.systembolaget.se/api/product/GetProductsForAnalytics"
d = {"ProductNumbers":["2048801"]} # use the ProductNumber(s) gattered above
prod_detail = requests.post(u, json=d, headers=h).json()
print(prod_detail)
{'Products': [{'ProductId': '303987', 'ProductNumberShort': '20488', 'Assortment': 'FS', 'CustomerOrderSupplySource': 'depot', 'SupplyCode': None, 'IsNewVintage': False, 'OriginLevel1': 'Skottland', 'OriginLevel2': 'Highlands', 'OriginLevel3': 'Western Highlands', 'OriginLevel4': None, 'OriginLevel5': None, 'BrandOrigin': None, 'BottleCode': 'Helbutelj', 'BottleTypeGroup': 'Helflaska glas', 'IsWebLaunch': False, 'Seal': 'Skruvkapsyl', 'VatCode': 1, 'PriceExclVat': 1199.2, 'PriceInclVatExclRecycleFee': 1499.0, 'PriorPrice': 0.0, 'ComparisonPrice': 2141.43, 'SellStartDate': '2008-04-01T00:00:00', 'SellStartTime': '10:00:00', 'BottleTypes': None, 'IsSellStartDateHighlighted': False, 'SellStartSearchUrl': '/sok-dryck/?sellstartdatefrom=2008-04-01&sellstartdateto=2008-04-01', 'ProducerName': 'Lang Brothers Limited', 'ProducerDescription': 'Familjen Edmonstone erhöll licens att destillera 1833. 1851 såldes destilleriet, under namnet Burnfoot, till MacLelleand som säljer det till Lang Brothers 1876, då under namnet Glen Guin. \n1905 blir det officiella namnet Glengoyne. 1965 blir Langs en del av Robertson & Baxter Group, som senare blir Edrington. 2003 köper företaget Ian Macleod & Co. destilleriet och varumärket Langs. Samtidigt byter man namn till Ian Macleod Distillers.', 'TasteAndUsage': 'Komplex, smakrik whisky med tydlig karaktär av sherryfat, inslag av valnötter, torkad frukt, kakao, lakrits och honung. Serveras rumstempererad som avec.', 'Production': None, 'CultivationArea': 'Glengoyne ligger i Western Highlands, alltså de västra delarna av Skottland. Gränsen för vad som räknas till de norra och västra högländerna brukar gå vid destillerier som ligger i nordvästlig riktning räknat från Staden Inverness.', 'Harvest': None, 'Soil': None, 'SupplierName': 'Cask Sweden AB', 'IsManufacturingCountry': True, 'IsSupplierTemporaryNotAvailable': False, 'IsSupplierNotAvailable': False, 'BackInStockAtSupplier': None, 'IsDiscontinued': False, 'IsCompletelyOutOfStock': False, 'IsTemporaryOutOfStock': False, 'RestrictedParcelQuantity': 0, 'IsRegionalRestricted': False, 'IsNewInAssortment': False, 'IsLimitedEdition': False, 'IsFsAssortment': True, 'IsTseAssortment': False, 'IsTsLsAssortment': False, 'IsHidden': False, 'IsSearchable': True, 'IsInAnyStoreSearchAssortment': True, 'IsStoreOrderApplicable': True, 'IsHomeOrderApplicable': True, 'IsAgentOrderApplicable': True, 'SeasonName': None, 'IsDishMatchable': False, 'IsDKI': False, 'AllergenStatement': 'Inga Allergener', 'IngredientStatement': None, 'AlcoholPercentage': 43.0, 'TasteSymbols': 'Avec/digestif;', 'TasteClockGroup': 'Ingen rökighet', 'TasteClockBitter': None, 'TasteClockFruitacid': None, 'TasteClockBody': None, 'TasteClockRoughness': None, 'TasteClockSweetness': None, 'TasteClockCasque': 8, 'TasteClockSmokiness': 1, 'IsCategoryBeer': False, 'IsCategoryBeerOrWhiskey': False, 'IsNewsIconVisible': False, 'Grapes': None, 'RawMaterial': 'Mältat korn av typen golden promise.', 'SugarContent': '<3', 'Additives': None, 'Storage': None, 'Preservable': '', 'HasInbounddeliveries': False, 'IsGlutenFree': False, 'IsEthical': False, 'EthicalLabel': None, 'IsKosher': False, 'Created': '2014-04-23T10:47:03', 'Modified': '2020-04-24T02:09:06', 'ShowAdditionalBottleTypes': False, 'OriginLevels': ['Skottland', 'Highlands', 'Western Highlands'], 'TasteSymbolsList': ['Avec/digestif'], 'IsTasteAndUsageAlone': True, 'ImageItem': [{'ImageUrl': 'https://static.systembolaget.se/imagelibrary/publishedmedia/rdxofqidiov294hwwqxz/303987.jpg', 'ImageAltAttribute': '303987'}], 'WebLaunch': None, 'ProductNutritionHeaders': [], 'HasProductImage': True, 'HasAnyTaste': True, 'HasSymbolsOrRecycleFee': False, 'HasTasteAndRestrictions': False, 'HasRestrictions': False, 'HasSymbols': False, 'HasAnyTasteClocks': True, 'HasAnyTasteSymbols': True, 'ProductNumber': '2048801', 'ProductNameBold': 'Glengoyne', 'ProductNameThin': '21 Years', 'PriceInclVat': 1499.0, 'IsOrganic': False, 'IsLightWeightBottle': False, 'Volume': 700.0, 'Vintage': 0, 'Country': 'Storbritannien', 'Category': 'Sprit', 'SubCategory': 'Whisky', 'Type': 'Maltwhisky', 'Style': None, 'BeverageDescriptionShort': 'Maltwhisky', 'StyleDescription': None, 'RecycleFee': 0.0, 'RecycleFeeIndicator': '', 'BottleTextShort': 'Flaska', 'IsAddableToBasket': True, 'IsFsTsAssortment': True, 'IsBSAssortment': False, 'IsPaAssortment': False, 'ShowAdditionalBsInformation': False, 'Usage': 'Serveras rumstempererad som avec.', 'Color': 'Brungul färg.', 'Aroma': 'Komplex, harmonisk doft med tydlig karaktär av sherryfat, inslag av torkad frukt, valnötter, lakritsfudge, pomerans och mörk choklad.', 'Taste': 'Komplex, smakrik whisky med tydlig karaktär av sherryfat, inslag av valnötter, torkad frukt, kakao, lakrits och honung.', 'AdditionalInformation': "Avec är drycker som konsumeras efter middagen till kaffet. Vanliga exempel på avec är whisky, cognac, mörk rom eller likörer. Ordet är franskt, betyder 'med' och är en kortform av uttrycket 'du café avec le petit verre' som betyder kaffe med det lilla glaset. "}], 'StockBalances': []}