Python urllib2 Datei-upload-Probleme
Ich bin derzeit versuchen zu initiieren, die einen Datei-upload mit urllib2 und die urllib2_file Bibliothek. Hier ist mein code:
import sys
import urllib2_file
import urllib2
URL='http://aquate.us/upload.php'
d = [('uploaded', open(sys.argv[1:]))]
req = urllib2.Request(URL, d)
u = urllib2.urlopen(req)
print u.read()
Habe ich gelegt .py Datei in meinem Ordner "My Documents" und platziert eine Verknüpfung, um es in meinem Ordner Senden An (die Abkürzung URL ist ).
Wenn ich Rechtsklick auf eine Datei, wählen Sie Senden An aus, und wählen Sie Aquate (mein python), es öffnet sich eine Eingabeaufforderung für einen Bruchteil einer Sekunde und dann schließt es. Nichts wird hochgeladen.
Wusste ich, es war wohl ein Fehler geht also tippte ich den code in CL python, Zeile für Zeile.
Bei mir lief der u=urllib2.urlopen(req)
Zeile, bekomme ich nicht einen Fehler;
alt-text http://www.aquate.us/u/55245858877937182052.jpg
statt, den cursor einfach angefangen zu blinken auf eine neue Zeile unterhalb dieser Zeile. Ich wartete ein paar Minuten, um zu sehen, wenn etwas passieren würde, aber es blieb einfach so. Um es zu stoppen, ich hatte zum drücken von Strg+Pause.
Was ist mit dieser Schrift?
Vielen Dank im Voraus!
[Bearbeiten]
Vergaß zu erwähnen -- bei mir lief das script ohne die Anfrage-Daten (die Datei) lief es wie ein Charme. Ist es ein problem mit urllib2_file?
[edit 2]:
import MultipartPostHandler, urllib2, cookielib,sys
import win32clipboard as w
cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),MultipartPostHandler.MultipartPostHandler)
params = {"uploaded" : open("c:/cfoot.js") }
a=opener.open("http://www.aquate.us/upload.php", params)
text = a.read()
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardText(text)
w.CloseClipboard()
Dass code, der funktioniert wie ein Charme, wenn Sie Sie ausführen über die Befehlszeile.
InformationsquelleAutor Salty | 2009-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie mit Python 2.5 oder neuer,
urllib2_file
ist sowohl unnötig als auch nicht unterstützte, so prüfen Sie, welche version Sie verwenden (und vielleicht upgrade).Wenn Sie mit Python 2.3 oder 2.4 (nur Versionen unterstützt, die von
urllib2_file
), versuchen Sie es mit der Beispielcode und sehen, ob Sie das gleiche problem haben. Wenn so, es wahrscheinlich ist etwas falsch, entweder mit Python oderurllib2_file
installation.EDIT:
Auch, Sie scheinen es nicht zu sein, entweder von
urllib2_file
's zwei unterstützte Formate für POST-Daten. Versuchen Sie es mit eine der beiden folgenden Linien statt:Ich habe nicht das problem angeschaut, seit ich dies geschrieben, mehr als vor einem Jahr, aber zu der Zeit war ich in der Lage zu duplizieren urllib2_file die Funktionalität in Python 2.6 und auch die Bibliothek der Seite sagt, es ist nur für Python 2.3 und 2.4. Ich kann nur davon ausgehen, dass der Fehler bezieht sich auf einige separate (aber wahrscheinlich eng Verwandte) Problem. 🙂
Der link zu dem Beispiel-code ist ein Toter link.
InformationsquelleAutor Ben Blank
Erstens, es gibt einen Dritten Weg, der zum ausführen von Python-Programmen.
Aus cmd.exe geben Sie
python myprogram.py
. Sie bekommen ein schönes log. Sie nicht geben Sie Zeug eine Zeile zu einem Zeitpunkt.Zweitens, überprüfen Sie die urrlib2 Dokumentation. Sie müssen schauen,das urllib, auch.
Einer Anfrage es erfordert eine URL und eine urlencoded kodiert Puffer von Daten.
Müssen Sie die Verschlüsselung Ihrer Daten.
InformationsquelleAutor S.Lott
Wenn Sie immer noch auf Python2.5, was für mich gearbeitet wurde, um den code herunterladen hier:
http://peerit.blogspot.com/2007/07/multipartposthandler-doesnt-work-for.html
und speichern Sie es als MultipartPostHandler.py
dann verwenden:
benötigen oder wenn Sie cookies:
InformationsquelleAutor abjennings