BeautifulSoup - TypeError: 'NoneType' object ist nicht aufrufbar

Ich brauche, um meinen code rückwärts kompatibel mit python2.6 und BeautifulSoup 3. Mein code wurde geschrieben mit python2.7, und in diesem Fall mit BS4. Aber wenn ich versuche, führen Sie es mit squeezy-server, bekomme ich diese Fehlermeldung (es hat python2.6 und bs3):

try:
    from bs4 import BeautifulSoup
except ImportError:
    from BeautifulSoup import BeautifulSoup

gmp = open(fname, 'r')
soup = BeautifulSoup(gmp)
p = soup.body.div.find_all('p')

p = soup.body.div.find_all('p')
TypeError: 'NoneType' object is not callable

Wenn ich ändern in:

   p = soup.body.div.findAll('p')

dann bekomme ich diesen Fehler:

p = soup.body.div.findAll('p')
TypeError: 'NoneType' object is not callable

Update der Fehler geworfen

  File "/home/user/openerp/7.0/addons/my_module/models/gec.py", line 401, in parse_html_data
    p = soup.body.div.findAll('p') #used findAll instead of find_all for backwards compatability to bs3 version
TypeError: 'NoneType' object is not callable

So oder so, beide Ansätze funktionieren auf meinem Ubuntu mit python2.7 und bs4, aber nicht auf squeezy. Gibt es einen anderen Unterschied zwischen diesen Versionen, dass ich nicht sehen/wissen und gibt mir diese Fehlermeldung?

  • Es gibt keinen Punkt in fallen zurück from BeautifulSoup import BeautifulSoup (version 3) bei Verwendung der version 4 nur syntax.
  • Sie sollten sehen, dass ich geschrieben ich habe versucht, über rückwärts-kompatible syntax, aber immer noch gleiche Fehlermeldung.
InformationsquelleAutor Andrius | 2014-10-28
Schreibe einen Kommentar