Volledige versie bekijken : Python - Download website .



Fck_
16 May 2011, 14:34
Hallo,

Ik moet een klein python script schrijven dat de gebruiker om een link vraagt, in een vorm zoals: http://www.minatica.be/blaat/blaat

Het python script moet deze webpagina dan opslaan. Heeft iemand enig idee hoe dit moet? Want ik kan het maar niet vinden..

Bedankt !

Dexter
16 May 2011, 14:45
Tip: Combineer urllib2.urlopen() met open(). (Bron: http://bytes.com/topic/python/answers/888627-how-save-web-page-python)
-----
url = 'je link'
f = urllib.urlretrieve(url,'test.html')
(Bron: http://stackoverflow.com/questions/3454819/how-to-save-a-whole-web-page-with-something-block-in-it)
-----

Misschien kan je hier al iets mee?


Dexter

ultddave
16 May 2011, 14:49
Moet je dan eigenlijk geen browser maken? Maar ipv de code te parsen & de pagina te tonen, dat je die code gewoon moet opslaan.

Dus dat je met sockets moet werken =>
- Gebruiker geeft http://www.minatica.be/blaat/blaat in.
- Ip opvragen van http://www.minatica.be
- Connectie opzetten met dat ip + poort 80
- "GET /blaat/blaat HTTP/1.0\n\n\0" versturen naar de server.
- En dan alles wat je ontvangt bufferen en op het einde in een file opslaan of tijdens het ontvangen appenden aan een file ofzo.

Maar ik heb nooit geprogrammeerd in python dus ik weet niet precies hoe het daar moet.

EDIT: Blijkbaar was dexter me voor :D. Ge kunt dus inderdaad zoals hij aangeeft ook een library gebruiken.

Mvg,
Dave

Fck_
16 May 2011, 19:55
Hmm, bedankt al voor de uitleg! Ga het zo snel mogelijk proberen.

Fck_
16 May 2011, 20:32
Na eventjes denken heb ik het zo gedaan:


#! /usr/local/bin/python
import urllib

# De HTML pagina die we willen downloaden.
url = raw_input ("Geef aub een link op in het juiste formaat: ")

# Hoe we de pagina willen opslaan, de naam.
filename = raw_input ("Als welke naam wil je de webpagina opslaan?: ")

# De webpagina 'openen'
f = urllib.urlopen(url)

# De webpagina lezen (code) en deze in S steken.
s = f.read()
f.close()

file = open(filename, 'w')
file.write(s)
file.close

print "Webpagina opgeslaan!"


Dankje voor de tips !