Output in Datei schreiben

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
dgoliath
User
Beiträge: 1
Registriert: Samstag 23. April 2011, 17:00

Samstag 23. April 2011, 17:08

Hallo,

Vorab Python ist die erste Programmiersprache, an die ich mich heranwage.

Mein erstes Programm soll von einer Webseite alle "href" links heraus filter und danach in eine Datei schreiben.
Das klappt so weit auch mit BeautifulSoup. Mein Problem besteht daran das mir keine Lösung in den Sinn kommt wie ich den "print output --> for line in link:" in eine Datei bekomme.
Selbstverständlich ist mir der Umgang wie grundsätzlich etwas in Dateien schreibt bekannt.

Code: Alles auswählen

  file = open(datei,"w")
   file.write(text)
   file.close()
Nur ich weiß es nicht auf mein Programm so recht anzuwenden.

Code: Alles auswählen

from BeautifulSoup import BeautifulSoup
import urllib2
import re


html_page = urllib2.urlopen('http://example.com')
soup = BeautifulSoup(html_page)
link = soup.findAll('a')


for line in link:
    print line.get('href')

Mit freundlichen Grüßen


EDIT ba Damaskus: URL geändert!
lunar

Samstag 23. April 2011, 17:14

Was ist denn daran so schwer?! Du öffnest die Datei eben außerhalb der Schleife, und nutzt in der Schleife statt "print" eben ".write()", um den Wert des Attributs "href" in die Datei zu schreiben.
Dark Shadow
User
Beiträge: 38
Registriert: Samstag 23. April 2011, 15:49

Samstag 23. April 2011, 17:16

Ich kenne das Modul zwar nicht, aber es sollte so machbar sein:

Code: Alles auswählen

from BeautifulSoup import BeautifulSoup
import urllib2
import re

file = open(datei, "w")

html_page = urllib2.urlopen('http://example.com')
soup = BeautifulSoup(html_page)
link = soup.findAll('a')


for line in link:
    file.write(line.get('href'))

file.close()
P.S.: lunar war schneller. Trotzdem hier noch mein Post, falls es nicht verständlich ist.

EDIT by Damaskus: URL geändert!
Antworten