Разработка на коленке

"тут должна быть красивая цитата о программировании"

Не все парсеры одинаково полезны

2014-04-04 17:05

Есть веб-приложение, которое запускается под Apache+mod_wsgi. Выполнение одного из запросов вешало выполнение, а в лог попадало:

Premature end of script headers: apache.py

Поиск по интернетам сказал, что проблема где-то в запросах к БД. Запросы проверил - всё нормально. При этом ошибка проявлялась только в одном окружении из двух. Потом стал отлаживать просто при помощи print. В итоге выяснил, что выполнение вешается на строке:

soup = bs4.BeautifulSoup(data)

Дальше поиск по интернетам привёл на bug/948577, вкратце lxml+BeautifulSoup под mod_wsgi вешает выполнение запроса. А в той строке BeautifulSoup в качестве парсера подтягивал как раз lxml. Прописал парсер явно:

soup = bs4.BeautifulSoup(data, 'html.parser')