Seite 1 von 1

Gewonnene Daten in CSV speichern

Verfasst: Mittwoch 10. Februar 2021, 20:43
von Bebbi
Hallo zusammen

Wieder einmal stehe ich vor einem unlösbaren Problem. Ich habe mit Webscraping diverse Informationen von einer Website gewonnen. Die Informationen habe ich mit folgendem Befehl generiert und entsprechen dem gewünschten Resultat.

Code: Alles auswählen

element = driver.find_element_by_id("quoteNewsStream-0-Stream")
titles = element.find_elements(By.TAG_NAME, 'h3')
sections = element.find_elements(By.TAG_NAME, 'p')
dates = element.find_elements(By.TAG_NAME, 'span')
Wenn ich mir die oben generierten Angaben mit folgendem Code anzeigen lasse, werden diese wie gewünscht dargestellt:

Code: Alles auswählen

i = 0
g = len(titles)
while i < g:
  print(dates[i].text)
  print('\n')
  print(titles[i].text)
  print('\n')
  print(sections[i].text)
  print('\n')
  i += 1
  
Soweit so gut. Jetzt würde ich allerdings die gewonnen Daten gerne in einem CSV-File abspeichern. Dazu habe ich folgenden Code erstellt:

Code: Alles auswählen

path1 = "C:/Users/Startklar/Documents/Python Scripts/Testdatei.xlsx"
workbook = openpyxl.load_workbook(path1)
sheet = workbook.active

Code: Alles auswählen

for r in range(1,5):
    for c in range(1,4):
        sheet.cell(row=r,column=c).value.titles[i].text
        
workbook.save(path1)
Dabei wird mir folgende Fehlermeldung angezeigt:

---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-799-2d9ee8198004> in <module>
1 for r in range(1,5):
2 for c in range(1,4):
----> 3 sheet.cell(row=r,column=c).value.titles.text
4
5 workbook.save(path1)

AttributeError: 'NoneType' object has no attribute 'titles'

Jetzt habe ich leider keine Ahnung was das genau heisst und bedeutet, kann mir jemand dabei helfen?

Re: Gewonnene Daten in CSV speichern

Verfasst: Mittwoch 10. Februar 2021, 21:53
von Sirius3
Ich weiß nicht, in welcher Programmiersprache Du programmierst, aber vielleicht wäre Python ganz angebracht:

Code: Alles auswählen

for date, title, section in zip(dates, titles, sections):
    print(date.text)
    print(title.text)
    print(section.text)
Wie kommst Du darauf, dass das values-Attribut einer Zelle ein titles-Attribut hätte. Wo hast Du das her?

Re: Gewonnene Daten in CSV speichern

Verfasst: Mittwoch 10. Februar 2021, 22:47
von __blackjack__
Wobei ich da noch einen Schritt weiter vorne ansetzen würde: es sollte nicht diese verschiedenen Listen geben wo die Elemente am gleichen Index zusammengehören. Zusammengehörende Daten in *eine* Liste. Beim Auslesen aus dem HTML scheinen die ja noch alle beisammen zu sein, warum werden sie an der Stelle dann auf verschiedene Listen aufgeteilt.

Titel und Beitrag vom Thema passen auch nicht so ganz zum Code denn dort scheint eine Exceltabelle geschrieben zu werden und keine CSV-Datei.