2009-12-14 5 views
5

Benimle ilgili daha önceki soruların, + Google App Engine, What pure Python library should I use to scrape a website? ve Mechanize and Google App Engine ile ilgili farkındayım.Python Mechanize + GAEpython kodu

Ayrıca atma, ben app motor üzerinde çalışmak için alamayan bazı kod here vardır

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 - 

mi çalışma makineleştirmek + appengine kodunu paylaşmaya istekli kimse yok mu?

cevap

1

Ben GAE üzerinde çalışan kod, GAEMechanize projesi http://code.google.com/p/gaemechanize/ dan MStodd, ve

herkes kodunu gerekiyorsa, MStodd başvurabilirsiniz için çok teşekkür mekanize başardı!

ps: Eğer sahibine başvurun zorunda kod, google koduna değil ..

Alkış Don

10

Sadece mechanize._http.py kodunu değiştirmek, bu sorunu çözdük , hat 43, hakkında:

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) 

için:

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) 
+0

Teşekkürler! - benim için çalıştı – hoju

+10

bu şu anda _urllib2_fork.py – hoju

+0

içinde gitmek gerekiyor Eğer şimdi yapmaya çalışın (Aralık 2011) aynı dosyada değil ama urllib2 içinde – lc2817