Upload nicht cross-platform?
Verfasst: Freitag 17. Oktober 2008, 23:08
Hallo,
Ich habe mir mittels mechanize relativ einfach 2 Upload scripts für die kostenlose Service SpeedyShare und ImageBanana bauen können.
ImageBanana.py:
SpeedyShare.py:
Mein Problem ist jetzt, ich weiß nicht genau was das Problem ist
.
Ich bekomme bei ImageBanana einen KeyError und bei SpeedyShare zwar den Link zurück aber die Datei ist fehlerhaft (0 byte). Den Seitenquelltext den ich im ImageBanana.py Modul bekomme mittels:
Habe ich mir mal genauer angeschaut und gesehen, dass ImageBanana.com eine Error Meldung ausgibt die einfach lautet "Datei konnte nicht hochgeladen werden" o.ä, was IMHO nicht sehr hilfreich ist.
Aber es scheint schon irgendwas mit dem Übertragen der Daten nicht zu stimmen, weil bei SpeedyShare die Dateien ja nachher nur 0 byte groß sind.
Hat jemand eine Idee woran das liegen könnte? Mechanize war doch cross-platform, oder?
MfG,
CracKPod
Ich habe mir mittels mechanize relativ einfach 2 Upload scripts für die kostenlose Service SpeedyShare und ImageBanana bauen können.
ImageBanana.py:
Code: Alles auswählen
#!/usr/bin/python
import mechanize
import BeautifulSoup
class ImageBanana(object):
def __init__(self):
self.browser = mechanize.Browser()
def upload(self, path):
data = file(path)
filename = path.split('/')[-1]
self.browser.open('http://www.imagebanana.com')
self.browser.select_form(nr=0)
self.browser.form.add_file(data, filename = filename)
soup = BeautifulSoup.BeautifulSoup(self.browser.submit().read())
for input in soup.findAll('input'):
if input['value'].startswith('http://'):
if input['value'].count('/img/'):
return input['value']
Code: Alles auswählen
#!/usr/bin/python
import mechanize
import BeautifulSoup
class SpeedyShare(object):
def __init__(self):
self.browser = mechanize.Browser()
self.browser.set_handle_robots(False)
def upload(self, path):
data = file(path)
filename = path.split('/')[-1]
self.browser.open('http://www.speedyshare.com/index_upload.php')
self.browser.select_form(nr=1)
self.browser.form.add_file(data, filename = filename)
soup = BeautifulSoup.BeautifulSoup(self.browser.submit().read())
for input in soup.findAll('input'):
if input['id'] == 'link1':
return input['value']

Ich bekomme bei ImageBanana einen KeyError und bei SpeedyShare zwar den Link zurück aber die Datei ist fehlerhaft (0 byte). Den Seitenquelltext den ich im ImageBanana.py Modul bekomme mittels:
Code: Alles auswählen
self.browser.submit().read()
Aber es scheint schon irgendwas mit dem Übertragen der Daten nicht zu stimmen, weil bei SpeedyShare die Dateien ja nachher nur 0 byte groß sind.
Hat jemand eine Idee woran das liegen könnte? Mechanize war doch cross-platform, oder?
MfG,
CracKPod