blog-bild

Pythonlernen. Ein Anfängerinnenbericht


***

03.Türchen

Wer schon mal angefangen hat, eine Programmiersprache zu lernen, kennt das:

Zumindest ging es mir so, als ich dachte, es wäre eine gute Idee, zum Pythonlernen Scraper zu schreiben, um so großartige Projekte wie das hier von der Morgenpost nachzuvollziehen. Ich hatte bis dahin noch keine Zeile Python-Code getippt und irgendwann mal was von Beautiful Soup gehört. (Wie ich dann später begriffen hab, ist das eine Python-Bibliothek – mit der man Daten aus Webseiten auslesen kann). Meine Co-Lernerinnen haben sich auch nicht so schnell abschrecken lassen, im Gegenteil. Die Mädels, zum Teil schon mit Python-Erfahrungen, haben sich mit mir zusammen auf die Suche nach den Datensätzen begeben, die die Morgenpost-DatenjournalistInnen für ihre „So tickt Berlin an deiner Linie“-Visualisierung verarbeitet haben. Für uns lief das dann so: „Lass alle Adressen von allen Bioläden an unserer Haltestelle scrapen! Hier, wir nehmen Beautiful Soup!“ (Ok, besser, wir fangen erstmal mit einem an.) Dann nur alle Adressen von der Biocompany! (Mist, dynamische Seite, viel zu kompliziert) Dann halt lidl! (Cool, die Seite ist leicht. Mist, Adressen sind viel zu komplizierte zum Scrapen.) Wir scrapen einfach was anderes! Meine erste Lektion war also: Erwartungen runterschrauben. Weit runter. Und nach ein paar Treffen, konnten wir dann einen Eintrag in unseren internen Blog schreiben, der etwa so begann:

A small step for pythonistas, a big step for anna and jenny 😃 Wir haben heute Abend versucht weiter die Lidl Website zu scrapen. Am Anfang hat nichts funktioniert, deswegen haben wir angefangen mit einer einfachen website: okfn.de. Mit die Entwickler-tool, haben wir erst ein Teil der Seite selektiert, dann die tag identifiziert (steht da). Und wir wussten ja schon dass die Tags in “find_all” -Funktion funktionieren. Problem war aber, dass wir nicht wussten was wir machen sollen wenn der Tag komplexer ist. Wir konnten alles mit < p > rausscrapen, aber dann haben wir nur viel Quelltext bekommen und nicht die Informationen die wir wollten wie Adressen zum Beispiel. Dann haben wir einfach die ganze Frage gegoogelt (beautiful soup how to get the precise elements out) und taaadaaaa: https://stackoverflow.com/questions/5041008/how-to-find-elements-by-class Hier haben wir gelernt, genauere Suchanfragen zu schreiben wie zum Beispiel alle links im text zu finden, die der klasse “blank” zugewiesen wurden. Das sieht dann so aus: soup.find_all(‘a’, class_=“blank”).

Ich habe mich trotz der vielen homöopathischen Fortschritte für genau diesen Weg entschieden. Nichts habe ich mir frustrierender vorgestellt, als eine Programmiersprache mit einem Buch zu erlernen und nicht zu wissen, wann ich endlich ein ersten eigenes Projekt umsetzen können werden. Aber auch das war ein Irrtum. Irgendwann erschien die wundervolle Katharine Jarmul in unserem Baumschiff. Hat von ihren Erfahrungen als Python-Programmiererin erzählt und uns ihr Buch im Space gelassen, das hier: „Data Wrangling with Python“. Für mich, als Journalistin, die Python zu genau diesem Zweck lernen möchte, ist es perfekt. Und zwar deshalb, weil ich das Gefühl habe, mich nicht in Einzelheiten zu verzetteln. Stück für Stück verstehe ich mehr von den Zeilen Code, die ich mir auf Stack Overflow zusammenkopiere. Auch wenn das auf den ersten Blick nicht sinnvoll erscheint, es hilft, die ganzen, erstmal abstrakt wirkenden Erklärungen aus den Büchern und Tutorials einmal „in Aktion“ zu sehen. Wenn es klappt. Und das ist die zweite Lektion: auch wenn die Erfolgserlebnisse erst mal winzig sind. Es bringt viel, sie zu teilen oder aufzuschreiben, um nach ein paar Wochen einmal zurückzublicken. Und zu sehen, was man dann doch schon geschafft hat. Mein aktueller Stand ist in etwa der hier:

DIE ANTWORT IST 121 🎉 🎉 🎉 Monate sind vergangen, Lidl-Seiten gingen ins Land und Frust brach herein und dann kamen @einhornkoetzchen und @tina 💕 und die ganze Zeit mit @sabina und @annaa 💗 Und nun habe ich meinen ersten spürbaren Schritt in Python gemacht und RegEx mit Beautiful Soup kombiniert 😍 Was mein Code kann ist, sagen, dass in dem Wikipedia-Artikel zur Energiewende das Wort Energiewende 121 Mal vorkommt 🌾 Auf dem Weg zur Erkenntnis, hab ich gelernt, dass RegEx _strings_ braucht, um sie lesen zu können. Das heißt, ich musste mit BeautifulSoup Text extrahieren (und keine tags etc.), um sie mit der RegEx-Funktion zu “befragen”. Und ich hab gelernt, Python nach dem Datentyp eines Elemets zu befragen. @tina hat mir noch die Zählfunktion gezeigt und nun ist es spät und ich trotzdem happy. (schnief) und motiviert.

Die Python-Gruppe ist übrigens offen für jede, die sich für die Programmiersprache interessiert, Bock hat, ihre Projekte voranzubringen oder mit uns zusammen lernen will. Wir freuen uns!

***

Woooow!

Wir sind immer noch ganz geflasht von all der Unterstützung!

Vielen vielen Dank an alle Spender*innen, die dafür gesorgt haben, dass wir bald eine 3D-Druckerin im Baumschiff begrüßen dürfen, und sie fleißig mit Filamenten füttern können!

Und auch die Lötstation zieht bald ein und wir bekommen einen Seilzug!

Wahnsinn!

Voll das verfrühte Weihnachten hier in der Heart of Code!

Für die Adventszeit sind alle unsere Wünsche erfüllt - aber wir freuen uns auch über weitere stetige Unterstützung, z.B. mit einer Fördermitgliedschaft

Oder kommt mal im Baumhaus vorbei und werft N=randomInt(1,10000) Bitcoins (in bar) in unsere Spendenbüchse.


***