.strip() Alternativen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
maag_vi
User
Beiträge: 3
Registriert: Montag 18. Juni 2018, 23:09

Hallo zusammen,
Ich bin gerade dabei einen Webcrawler mit Scrapy zu programmieren und um diese Daten dann in eine Excel Datei zu exportieren.
Dabei habe ich jetzt folgendes Problem, mit dem ich jetzt schon einige Zeit herumkämpfe:

Code: Alles auswählen

In [43]: test = response.css('#js-section-1290::text').extract()[0].strip()
In [44]: print(test)


In [45]: test = response.css('#js-section-1290::text').extract()
In [46]: print(test)
['\r\n\r\n                        ', '\r\n\r\n                        \r\n\r\n                            \r\n\r\n                            \r\n                                \r\n                            This idea will slow everyone down and encourage them to take a minute to recognize the contributions of those they work with. A few simple words of recognition and gratitude energizes people, and the more we do it, the better we will get at it.\r\n                         \r\n\r\n                            \r\n\r\n                        \r\n\r\n                    ']
Ich würde dabei gerne nur den Text extrahieren, jedoch ist dies hier mit .strip() nicht möglich, da dabei auch der Text weggekürzt wird.
Da ich noch ein ziemlicher Anfänger bin, wollte ich fragen ob jemand vielleicht eine Alternative kennt um an den Text zu kommen?

Liebe Grüsse
Stefan
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das wäre mir neu. Strip entfernt nur white space. Der Text bleibt. Dir ist aber schon klar, dass du eine Liste von Texten extrahiert hast? Deren Elemente musst du natürlich einzeln behandeln.
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Ja, Dein erstes Element besteht auch nur aus Leerraum.
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Du arbeitest auf dem falschen Element. Ersetze in der ersten Zeile mal das [0] durch ein [1] und wende darauf strip() an. Dann solltest du den Fehler schnell erkannt haben...
maag_vi
User
Beiträge: 3
Registriert: Montag 18. Juni 2018, 23:09

snafu hat geschrieben: Dienstag 19. Juni 2018, 07:21 Du arbeitest auf dem falschen Element. Ersetze in der ersten Zeile mal das [0] durch ein [1] und wende darauf strip() an. Dann solltest du den Fehler schnell erkannt haben...
Ah, super danke dir bzw. danke allen! :)
Fehler gefunden.
maag_vi
User
Beiträge: 3
Registriert: Montag 18. Juni 2018, 23:09

Wäre es möglich, diese leeren Elemente nicht anzuzeigen sondern nur die, welche mit Text gefüllt sind?
Ohne dass ich für jedes Element eine eigene Abfrage machen muss?

Bzw. wie wäre dies anzugehen? Könntet ihr mir da evtl. einen Tipp geben?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Über die Elemente iterieren, Strippen, und wenn sie dann nicht leer sind anzeigen oder aufsammeln und später alle anzeigen.
Antworten