Frage

Ich habe versucht, mein Login und Passwort weitergeben Python Skript auf die eBay Anmeldeseite. Später möchte ich dieses Skript aus ausgeführt werden soll " Google App Engine "

Ich wurde vorgeschlagen, zu verwenden " mechanize ". Leider es hat nicht funktioniert für mich:


IDLE 1.2.4      
>>> import re
>>> import mechanize
>>> br = mechanize.Browser()
>>> br.open("https://signin.ebay.com")

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    br.open("https://signin.ebay.com")
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 203, in open
    return self._mech_open(url, data, timeout=timeout)
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 255, in _mech_open
    raise response
httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt
>>> 

Früher war ich zu verwenden versuchen, Python und Köper - es ist nicht entweder bis funktionierten ein Fan vorgeschlagen dass ich die neueste Version von mechanize herunterladen und dann die folgenden Schritte aus:

  1. Suchen Sie den folgenden Ordner auf meinem Computer: " C: \ Python25 \ Lib \ site-packages \ Köper \ other_packages \ _mechanize_dist "

  2. Ändern Sie den Namen auf " _mechanize_dist_backup " (der vollständige Pfad, so sollte sein „ C: \ Python25 \ Lib \ site-packages \ Köper \ other_packages \ _mechanize_dist_backup ")

  3. Kopieren Sie die " mechanize " Ordner (die in " mechanize-0.2.2 " befindet - der Ordner, dass ich heruntergeladen hatte und dekomprimiert von die "mechanize" offizielle Website ) und fügen sie ihn in „< strong> C: \ Python25 \ Lib \ site-packages \ Köper \ other_packages "(der vollständige Pfad, damit sein" C: \ Python25 \ Lib \ site-packages \ Köper \ other_packages \ mechanize ")

  4. Ändern Sie den Namen auf " _mechanize_dist " (der vollständige Pfad Wesen " C: \ Python25 \ Lib \ site-packages \ Köper \ other_packages_mechanize_dist ")

  5. Kopieren " ClientForm " Datei von " _mechanize_dist_backup " und fügen Sie ihn in " _mechanize_dist " (in der Tat fand ich dort zwei Dateien mit dem Namen " ClientForm ". ein eine python-Datei ist, eine andere ist eine kompilierte python-Datei - ich kopiert und beide eingefügt)

Nachdem ich all diese Schritte durchgeführt hatte, habe ich versucht, in loggt zu meinem eBay Konto aus der Köper Shell in Python und es funktionierte !!! Ich konnte sogar melden Sie sich bei meinem Yahoo E-Mail-Box in der gleichen Art und Weise und überprüfen Sie meine E-Mails!

Aber ich habe jetzt ein Dilemma: Ich weiß nicht, wie ich meinen Skript bereitstellen könnte „ Google App Engine “.

Früher ich hatte dass, wenn ich in App Engine Projekte Bibliotheken von Drittanbietern verwenden möchten, ich sie einfach schließen müssen mit meine Anwendung, wenn ich es einsetzen - im Fall mit Köper , zum Beispiel, ich brauche nur die kopieren Köper Ordner in Ordner meine Anwendung und es einzusetzen.

Aber jetzt nicht nur ich habe diese Köper Ordner als eine Drittanbieter-Bibliothek aufgenommen werden, sondern auch all diese Änderungen ausgeführt in „ C: \ Python25 “ (in " C: \ Python25 \ Lib \ site-packages \ Köper \ other_packages ", um genau zu sein), während meine Bewerbungsmappe - die, in der ich mein Skript ( " my_script .py.“Datei) - befindet sich auf der " E " disk

Kann jemand bitte geben Sie mir einige Vorschläge hier?

War es hilfreich?

Lösung

Wie bei GAE Bereitstellung Problem, @brilliant, sieht aus wie der Code Sie es zu tun ist alles reine Python 2.5 (die einzige wirklich blockiert Problem wäre, wenn es nicht - keine binären Erweiterungen kein Code erlaubt, erfordert Python 2.6 oder besser erlaubt, und das ist nur so, wie es zu diesem Zeitpunkt auf GAE ist).

Also, unter dieser Annahme, das einzige Problem w / den Code auf App Engine bereitstellen wird, die die gesamten Code, nicht in site-packages (von denen natürlich GAE dev_appserver.py entfaltet absolut nichts, nada, zilch ), sondern im Verzeichnis der GAE-Projektes (ich schlage vor, eine rekursive zip aller Py-Dateien, nur - alle die .pyc Dateien entfernen, insbesondere, bevor Sie es zip -r; -).

Alles in allem, es ist nur eine Frage von ein paar entsprechende Shell-Befehle: cp -R dann zip -r (wahrscheinlich härter auf nicht-Unixy Muscheln, aber, hey, auch unter Windows Sie können tun es mit bash von cygwin ... auf jeden Fall, es ist kaum eine "Entwicklung" -Ausgabe, per se, -).

Andere Tipps

Die Fehlermeldung zeigt an, dass mechanize die Website für Sie robots.txt-Datei zu gehorchen.

Sie sollten eBays API verwenden, wenn Sie ihre Website in einer automatisierten Art und Weise zugreifen möchten. Wenn Sie dies nicht tun, und bauen Sie Ihre eigene Lösung, dass robots.txt ignoriert, seien Sie nicht überrascht, wenn sie Sie blockieren, und über automatisierte Anfragen an Google beschweren von App Engine aus Ihrer Anwendung kommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top