Ich biete Werte für einen Website-Filter an, um verschiedene HTML zu generieren, die ich parse. Ich möchte jede Seitenquelle in einem anderen Python-Objekt speichern, um die Daten zu unterscheiden. Ich habe eine Liste von leeren Objekten, an die ich mich anhänge. Parsing-Seitenquelle und möchte jede Seitenquelle in einem eigenen Python-Objekt speichern, das sich selbst in einer Liste befindet. Auf diese WeiseVerschachtelt for-loop und an leere Objekte anhängen
Die Herausforderung besteht darin, wie die Td-Elemente von einer bestimmten HTML-Quelle an das bestimmte leere Objekt in der Liste angefügt werden. Ich muss HTML-Quelle bei jeder Iteration in einem separaten Objekt speichern, das selbst in einer Liste gefunden wird.
werde ich mein Beispiel vereinfachen:
years = ['2015', '2016]
weeks = ['1', '2']
store = [[], [], [], []]
Das gibt mir 4 Sätze von HTML-Quelle, die ich aufnehmen müssen:
for y in years:
for w in weeks:
#Ich y verwenden und w in webdriver.select zu liefern Werte für Web-Seite Filter ich werde dann BS verwenden Seite Quelle für jede Iteration zu kopieren:
html = browser.page_source
soup = BeautifulSoup(html, "lxml")
Und dann iteriert durch die bestimmte Seite Quelle td Elemente zu extrahieren:
counter = 0
for el in soup.find_all('td'):
Index, um Speicherliste bereitzustellen td Elemente zu trennen leere Objekte
for el in soup.find_all('td'):
store[counter].append(el.get_text())
counter = counter + 1
Streifen das Element der HTML zu anhängen Zeichen und zum Zähler hinzufügen, um zum nächsten Objekt in der Geschäftsliste zu gelangen.
Das Ergebnis ist jedoch, dass alle td-Elemente an das erste Objekt in der Liste angehängt werden, anstatt dass jede HTML-Quelle ihr eigenes Objekt hat. Was vermisse ich?
Wäre es besser, die Kartenfunktion irgendwie zu verwenden?