Разбор HTML в Google App Engine на python с BeautifulSoup? - PullRequest
1 голос
/ 20 января 2011

Я использую BeautifulSoup для анализа HTML с нескольких сайтов, добавляя каждый сайт в очередь задач GAE. Однако очередь задач, кажется, повторяет 2 задачи, которые, по-видимому, либо генерируют ApplicationError: 5 ошибок в журнале, либо завершаются ошибкой с объектом NoneType, не имеющим атрибута 'findAll' , который при Я протестировал его на объектах NLE, сгенерированных IDLE, когда красивый суп не смог найти ничего на странице, которую я пропустил. Я добавил код ниже, однако это не решает проблему:

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 Ответ

2 голосов
/ 20 января 2011

Ошибка приложения, вероятно, указывает на то, что ваш urlfetch для получения HTML не удался. Очередь задач будет автоматически повторять попытку до тех пор, пока она не будет выполнена успешно (если используется с настройками по умолчанию). Я бы не стал сильно беспокоиться об этой ошибке, если она возникает только время от времени и исчезает после повторной попытки. Если какое-либо задание повторяется неудачно, я подозреваю, что есть проблема с ресурсом, который вы пытаетесь получить.

Если вы сначала убедитесь, что productTable не None перед его использованием, то вы не должны получить ошибку 'NoneType' object has no attribute 'findAll'. Похоже, что ваш провал чека не приводит к тому, что ваш productTable.findall звонок будет обойден.

...