urllib und co

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Subsystem
User
Beiträge: 3
Registriert: Montag 14. September 2009, 14:31

Hallo zusammen, bin neu in diesem Forum und möchte kurz erklären was mein Ziel ist. Ich würde gerne via Urllib.open(url etc.) den Content der URL auslesen und bestimmte Link's in ein Textfile schreiben. Sollte villeicht noch sagen das ich im Bereich Programmieren mit Python meine ersten Schritte mache.

Code: Alles auswählen

import urllib, os
d = open("textfile.txt","w");
x = os.path.getsize("textfile.txt");
while (x <= "10000L"):
	f = urllib.urlopen("URL");
	for content in f:
		if content == "Contentinhalt":
			d.write(content + "\n")
	f.close();


würde mich über eine baldige Antwort freuen. Danke euer Subsystem
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Generell waere es gut, wenn du sagst, was dein Problem ist.

Diese while-Schleife ist Murks. Erstmal aenderst du x in der Schleife gar nicht mehr. Zweitens gibt getsize eine Zahl, du vergleichst aber mit einem String. Generell ist das Ueberpruefen der Dateigroesse waehrend du noch reinschreibst ungenau, da nicht alles sofort auf Platte geschrieben wird, sondern gepuffert wird. Brauchst du sowas wirklich?
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Was ist denn dein Problem? Willst du Links mit einem bestimmten Pattern sammeln? Dann schau dir mal Regular Expressions und [mod]re[/mod] an.
Subsystem
User
Beiträge: 3
Registriert: Montag 14. September 2009, 14:31

@ Cofi dankeschön dies ware genau was ich gesucht habe.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Wobei man zum finden der Links auf einen echten HTML-Parser setzen sollte, such mal nach BeautifulSoup.

Der Algorithmus mal korrekt:

Code: Alles auswählen

with open("links.txt", "w") as linkfile:
    while True:
        links = gather_links(url)
        linkfile.writelines(links)
        if os.path.getsize >= MAX_SIZE:
            break
Antworten