2016-08-03 13 views
1

Ich versuche, ein Skript zu erstellen, das den Bestand der Elemente auf einer Website überprüft, ich versuche, jede Zeile zu finden, die "ATS" darin enthält die Nummer nach dem Doppelpunkt. Ich möchte dann alle Werte von „ATS“ (ein Wert für jede Größe) drucken, ist hier das Skript, das ich bisher habe:So suchen Sie nach Text in Beautiful Soup

import requests 
from bs4 import BeautifulSoup 

prodpage=requests.get('http://www.adidas.com/on/demandware.store/Sites-adidas-US-Site/en_US/Product-GetVariants?pid=S32145', headers={'User-Agent': 'Mozilla/5.0'}) 

soup = BeautifulSoup(prodpage.text) 

print (soup) 

, die diese zurück:

{"id": "S32145_590", "attributes": { 
"size":"7" 
}, 
"articleNo": "S32145", 
"onlineFrom": 1.4667516E12, 
"customBadges": "~", 
"pricing": {"standard": "140.0", "sale": "140.0", "isPromoPrice": false, "quantities": [ 
{"unit": "PIECE", "value": "1.0"} 
]} 
, 
"avStatusQuantity": 1.0, 
"avStatus": "IN_STOCK", 
"inStock": true, 
"avLevels": {"IN_STOCK": 1.0, 
"PREORDER": 0.0, 
"BACKORDER": 0.0, 
"NOT_AVAILABLE": 0.0, 
"PREVIEW": 0.0}, 
"ATS": 7.0, 
"inStockDate": "" 
}, 
+0

Versuchen Sie, diese zu ändern: 'Suppe = BeautifulSoup (prodpage.text, "html.parser") ', es ist keine Antwort auf Ihre Frage, aber neuere Python 3 Versionen fragen danach –

Antwort

0

I denke BeautifulSoup ist nicht der optimale Weg zu gehen. Es sieht eher nach json-formatierten Daten aus. BeautifulSoup ist hauptsächlich ein Parser für HTML/XML. So ist mein Vorschlag für

import requests 
import json 

prodpage=requests.get('http://www.adidas.com/on/demandware.store/Sites-adidas-US-Site/en_US/Product-GetVariants?pid=S32145', headers={'User-Agent': 'Mozilla/5.0'}) 
data = json.loads(prodpage.text) 

zu gehen und dann für ATS in der dict Struktur suchen also

for variant in data['variations']['variants']: 
    print(variant['ATS']) 

Das ist für mich gibt

0 
0 
12.0 
0 
8.0 
0 
7.0 
0.0 
6.0 
0.0 
17.0 
12.0 
18.0 
2.0 
9.0 
3.0 
7.0 
0 
7.0 
0 
5.0 
+0

Vielen Dank, das hat auch für mich funktioniert – Tperry

+0

Hallo TPerry Schön zu hören, also können Sie es bitte als gelöst markieren! Vielen Dank! – ChE