2011-01-20 75 views
1

我一直在使用BeautifulSoup解析來自幾個站點的HTML,並將每個站點添加到GAE任務隊列中。然而,任務隊列似乎重複了2個任務,這似乎要麼產生ApplicationError:5錯誤的日誌或失敗與'NoneType'對象沒有屬性'findAll',當我測試它在IDLE生成None對象當美麗的湯沒有找到我通過它的頁面中的任何東西。我添加的代碼下面然而,這似乎並沒有解決這個問題:使用BeautifulSoup在python中解析Google App Engine中的HTML?

productTable = soup.find('table') 

      if productTable == None: 
       logging.error('Could not find the product table') 
       break 

      if productTable.findAll('table') == None: 
       logging.error('Product table was empty') 
       break 

我想知道如果任何人都可以給我一些建議,什麼是錯的,所以我可以修復它。

+1

將結果與`None`進行比較的正確方法是使用`if blah is None`,因爲`None`是單例而不是值。 – 2011-01-20 19:43:37

回答

2

應用程序錯誤可能表明您的urlfetch檢索HTML失敗。任務隊列將自動重試任務直至成功(如果使用默認設置)。如果這種錯誤偶爾發生一次,並且在重試後消失,我不會太擔心這個錯誤。如果給定任務重複失敗,那麼我會懷疑您試圖獲取的資源存在問題。

如果您在使用之前首先檢查productTable不是None,那麼您應該不會收到'NoneType' object has no attribute 'findAll'錯誤。看起來您的支票失敗並不會導致您的呼叫被繞過。