2012-01-31 3 views
0

Я пишу основной скрипт для очистки экрана, используя Mechanize и BeautifulSoup (BS) в Python. Однако проблема, с которой я сталкиваюсь, заключается в том, что по какой-либо причине запрошенная страница не загружается правильно каждый раз. Я завершаю это, потому что при поиске загруженных страниц с использованием BS для настоящих тегов я получаю сообщение об ошибке. Если я снова загружу страницу, она будет работать.Убедитесь, что страница правильно загружена в Python

Таким образом, я хотел бы написать небольшую функцию, которая проверяет, правильно ли загрузилась и перезагрузила страницу (я мог бы также решить ее, выяснив, что пойдет не так, но это, вероятно, слишком продвинуто для меня). Мой вопрос: как я могу проверить, правильно ли загружена страница?

+2

Покажите нам оскорбительный код. Иначе любое предложение было бы полезным для вас полезным. –

+0

«Решите это, выясняя, что пойдет не так». Хорошая идея. Сбросьте выход из механизации, чтобы увидеть, что пошло не так. Возможно, это лучший вопрос. –

+0

Я использовал предложение Дениса создать небольшую функцию, которая проверяет каждую загруженную страницу, однако это не сработало, поэтому я вывожу вывод в соответствии с предложением S.Lott и вот, проблема с BeautifulSoup ... по какой-то причине BS случайно не находит теги, даже если они находятся в документе. Воспроизведение объекта BS тоже не работает, я должен повторно загрузить, а затем воссоздать, и он работает. Я сделаю еще несколько тестов и вернусь с другим вопросом. Спасибо, парни. –

ответ

0

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

page = BeautifulSoup(page) 

while page.body = None: 
    #redownload the page 
    page = BeautifulSoup(page) 
#now you can use the data 
0

Я думаю, что вы можете просто найти тег, завершающий html, если этот тег находится в - это действительная страница.

0

Наиболее распространенным решением является проверка наличия закрывающего тега </html>. Это позволит вам обнаружить усечение страницы.

Что-нибудь еще, и вам нужно будет более четко описать свой отказ.

Смежные вопросы