Python Mechanize + GAEpython code - PullRequest
       8

Python Mechanize + GAEpython code

5 голосов
/ 14 декабря 2009

Мне известны предыдущие вопросы, касающиеся механизации + Google App Engine, Какую чистую библиотеку Python я должен использовать для очистки сайта? и Механизация и Google App Engine .

Также есть некоторый код здесь , который я не могу заставить работать на движке приложения, бросая

File “D:\data\eclipse-php\testpy4\src\mechanize\_http.py”, line 43, in socket._fileobject(”fake socket”, close=True)
File “C:\Program Files (x86)\Google\google_appengine\google\appengine\dist\socket.py”, line 42, in _fileobject
fp.fileno = lambda: None
AttributeError: ’str’ object has no attribute ‘fileno’
INFO 2009-12-14 09:37:50,405 dev_appserver.py:3178] “GET / HTTP/1.1″ 500 -

Кто-нибудь готов поделиться своим рабочим кодом механизации + appengine?

Ответы [ 3 ]

10 голосов
/ 13 января 2010

Я решил эту проблему, просто измените код mechanize._http.py, около строки 43, от:

try:
    socket._fileobject("fake socket", close=True)
except TypeError:
    # python <= 2.4
    create_readline_wrapper = socket._fileobject
else:
    def create_readline_wrapper(fh):
        return socket._fileobject(fh, close=True)

до:

try:
    # fixed start -- fixed for gae
    class x:
        pass

    # the x should be an object, not a string,
    # This is the key
    socket._fileobject(x, close=True)
    # fixed ended
except TypeError:
    # python <= 2.4
    create_readline_wrapper = socket._fileobject
else:
    def create_readline_wrapper(fh):
        return socket._fileobject(fh, close=True)
1 голос
/ 15 декабря 2009

Мне удалось получить механизированный код, который работает на GAE, большое спасибо MStodd, от проекта GAEMechanize http://code.google.com/p/gaemechanize/ и

Если кому-то нужен код, вы можете связаться с MStodd!

ps: код не указан в коде Google, поэтому вы должны связаться с владельцем

Приветствие не

0 голосов
/ 22 октября 2010

Я загрузил источник проекта gaemechanize в новый проект: http://code.google.com/p/gaemechanize2/

Вставить обычные предостережения.

...