Hallo, ich möchte eine datei mit urlretrieve downloaden, nur lädt er irgendwie nur 503 byte runter.
Mit file.write(urlopen(link).read(), "wb") habe ich es auch bereits versucht, nur hier ebenfalls nur 503 byte.
Jemand einen heißen tipp für mich?
urlretrieve lädt nicht richtig runter
tut mir leid dass das jetzt wahrscheinlich ober noobig ausgucken wird:
[/code]
Code: Alles auswählen
import urllib
f = urllib.urlopen("http://www.getdota.com")
s = f.read()
verStart = 'Latest Map: <span class="version">'
verEnd = '</span></div>'
ver = s[s.find(verStart) + len(verStart):s.find(verEnd, s.find(verStart))]
print "Newest Dota: %s" % ver
f.close()
f = urllib.urlopen("http://www.getdota.com/download/map/" + ver)
s = f.read()
linkStart = "<script>document.location.href='"
linkEnd = "';</script>"
link = s[s.find(linkStart) + len(linkStart):s.find(linkEnd, s.find(linkStart))]
f.close()
urllib.urlretrieve(link, "DotA Allstars v" + ver + ".w3x")
OK, Du versuchst also aktuell den Inhalt der URL
in die Datei 'DotA Allstars v6.61c.w3x' zu speichern. Diese URL liefert einen 404er folgenden Inhalt.
Ist das das, was Du erwartest?
Code: Alles auswählen
http://ineedwahwah.com/getdota/eng/DotA Allstars v6.61c.w3x
Code: Alles auswählen
<link href=http://ineedwahwah.com/z.css rel="stylesheet" type="text/css">
<center>
<div id=logo >
<center><table><tr><td width=500 height=25 background="http://ineedwahwah.com/pic/bg.png" align=right valign=middle>
<a href="http://ineedwahwah.com/"><strong>ineedwahwah.com</strong></a>
</td></tr></table></center>
</div>
<div id=menu >
<a href="index.html">main</a>
</div>
<div id=main >
error...
</div>
<div id=credit >
<center><font size=1> created by z </font></center>
</div>
</center>
https://www.xing.com/go/invite/18513630.6a91d4
hm im browser klappt der download mit dem generierten link, nur anscheinend nicht mit python.lutz.horn hat geschrieben:OK, Du versuchst also aktuell den Inhalt der URL
in die Datei 'DotA Allstars v6.61c.w3x' zu speichern. Diese URL liefert einen 404er folgenden Inhalt.Code: Alles auswählen
http://ineedwahwah.com/getdota/eng/DotA Allstars v6.61c.w3x
Ist das das, was Du erwartest?Code: Alles auswählen
<link href=http://ineedwahwah.com/z.css rel="stylesheet" type="text/css"> <center> <div id=logo > <center><table><tr><td width=500 height=25 background="http://ineedwahwah.com/pic/bg.png" align=right valign=middle> <a href="http://ineedwahwah.com/"><strong>ineedwahwah.com</strong></a> </td></tr></table></center> </div> <div id=menu > <a href="index.html">main</a> </div> <div id=main > error... </div> <div id=credit > <center><font size=1> created by z </font></center> </div> </center>
@Krauzi: Da sind Leerzeichen in der "URL", damit ist's aber keine gültige URL. Im Browser geht das, weil der die vor dem Absenden der Anfrage entsprechend kodiert, weil der gewohnt ist, von Menschen "Schrott" zu bekommen und versucht den vor der Verwendung zu bereinigen.
gaaaaaaaaaaaanz genau, du kamst mir blos eine sekunde zuvor.
Ich hatte das problem schon mal und deshalb habe ich es auch gerade selbst gelöst.
An leute die evtl man das selbe problem haben sollten:
aus den leerzeichen müssten %20 gemacht werden, das geschieht so:
@lutz.horn:
das wäre auch eine denkbare möglichkeit gewesen, der server könnte einen .w3x handler für php machen. Dann könnte er untersuchen, ob die anfrage überhaupt von einem browser ausgeht und dann erst den header setzen.
Ich hatte das problem schon mal und deshalb habe ich es auch gerade selbst gelöst.
An leute die evtl man das selbe problem haben sollten:
aus den leerzeichen müssten %20 gemacht werden, das geschieht so:
Code: Alles auswählen
link = link.replace(" ", "%20")
das wäre auch eine denkbare möglichkeit gewesen, der server könnte einen .w3x handler für php machen. Dann könnte er untersuchen, ob die anfrage überhaupt von einem browser ausgeht und dann erst den header setzen.
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Code: Alles auswählen
>>> urllib.quote("www.test.hallo welt.html")
'www.test.hallo%20welt.html'
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei