-
Notifications
You must be signed in to change notification settings - Fork 274
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
grab.error.GrabTooManyRedirectsError на ровном месте #293
Comments
Я кажется понял в чём дело, сайт через заголовки говорит нам идти сюда: То есть видимо что-то не так с кодировкой в грабе, он портит символы в урле. Логи выглядят вот так, 01.log:
02.log:
И далее все логи *.log после второго идут одинаковые. Логи *.html все Логи консоли вот так выглядят:
... и потом ошибка зацикленного редиректа grab.error.GrabTooManyRedirectsError |
Проблема в том что граб когда парсит заголовки (когда редирект) вот в этом месте, то в случае когда заголовок вот такой: На выходе он в переменной url выдаёт вот это: То есть арабские символы превращаются в банальное "тире", сайт нас снова направляет на правильный заголовок, граб снова его портит и всё повторяется по кругу. |
Да я тоже сегодня глядел этот тикет и добрался до того места :) Дальше пока не глядел. Хотел сюда отписать но забыл потом. Суть в том, что тут вручную парсятся хедеры https://github.com/lorien/grab/blob/master/grab/document.py#L170 И граб игнорит любые не-ascii символы. Видимо, надо по-другому делать. В качестве быстрого фикса, можете попробовать заменить 'latin' на 'utf-8' в вашей локальной копии граба, но возможно тогда что-нить ещё отломается, не знаю. |
Большое спасибо за костыль! Мне его оказалось достаточно, теперь всё нормально работает. Вы примете этот багфикс в основную версию? Возможно правильнее было бы парсить этот заголовок ответа и по нему определять кодировку: |
Fix #293: processing non-latin chars in Location header
Результат:
В браузере обычном всё ок. Куда копать?
The text was updated successfully, but these errors were encountered: