2017-06-02 4 views
1

Wie kann ich in zwei For-Schleifen erstellte Ausgaben erstellen?Geschachteltes Drucken in einer verschachtelten Schleife in Python

Was Ich mag würde haben:

Name1 
Adress1 

Name2 
Adress2 

.. 

Was erhalte ich:

Name1 
Name2 

Adress1 
Adress2 

Ich habe schon viel und brachte wieder in die Ausgangslage versucht.

Die Namen und Adressen werden aus einem HTML-Dokument geparst und mit den for-Schleifen in eine txt-Datei geschrieben. (im ersten Schritt zur Konsole)

Ich danke Ihnen im Voraus!

with urllib.request.urlopen("file:///C:/Users/x/Desktop/test.html") as url: 
     soup = BeautifulSoup(url, "html.parser") 
     for name in soup.findAll("div", { "class" : "name m08_name" }): 
      print(name.get_text()) 
     for adress in soup.findAll("div", { "class" : "adresse m08_adresse" }): 
      print(adress.get_text())  
+3

'für Namen, Adresse in zip (soup.findAll (...), soup.findAll (...))' –

+0

@TomaszPlaskota Gute Antwort, aber Sie wirklich haben sollte es in eine tatsächliche Antwort setzen also könnte es abgestimmt werden, akzeptiert usw. Ich gebe dir trotzdem eine +1. – ashbygeek

Antwort

1

Sie müssen nur Ihre Teilergebnisse speichern und sie dann zusammenfügen.

Beachten Sie, dass Sie sicherstellen müssen, dass die Anzahl der Namen genau der Anzahl der Adressen entspricht.

with urllib.request.urlopen("file:///C:/Users/x/Desktop/test.html") as url: 
    soup = BeautifulSoup(url, "html.parser") 

    names = [name.get_text() for name in soup.findAll("div", { "class" : "name m08_name" })] 
    addresses = [address.get_text() for adress in soup.findAll("div", { "class" : "adresse m08_adresse" })] 
    for line in zip(names, addresses): 
     print("%s\n%s" % line) 
+0

Vielen Dank! :) Sein neues Personal für mich, dieses "Zip";) –

Verwandte Themen