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