Я открыл RFC 7516 и там всё очень детально описано, включая подробный пример. Так детально и подробно и длинно-многословно, что я сразу же расхотел реализовывать это вручную своими силами и пошёл искать готовые решения. Например, нашёл python-jose и jwcrypto для python, go-jose и jwe для go, jwe для ruby. openid jwe для java, jose-php для php, и в целом для любого языка можно найти готовые библиотеки и примеры.
Никита Савченко, это довольно странно, потому что firefox обычно проблем не вызывает. Либо в этой сборке есть что-то "не такое как надо", либо дело не в браузере.
Кстати, это легко проверить: зайти на этой же системе другим браузером на те же сайты.
дмитрий шевченко, если даже там используется stdin, то может оказаться, что в последней строке нет переноса строки, и это ломает input. Поэтому имеет смысл делать, например, sys.stdin.read().
Могу также предположить, что CF чем-то не нравится текущий User-Agent или что-то ещё в новом браузере. Ещё вариант, что просто случайно совпало и сейчас появилась какая-то активность с того же IP или из той же подсети.
Про VPN кстати ни фига не шутки. Сейчас много "VPN" (на самом деле прокси) для браузеров развелось и многие их себе ставят. А потом они ломаются с разными странными симптомами.
Иногда бывают такие расширения, у которых не сразу догадаешься, что там такая функция есть. Я поставил Censor Tracker на один из своих неосновных браузеров и не сразу заметил, что чёта изменилось, ведь срабатывает он только на некоторые сайты, которые по егоданным в России заблокированы, не на все подряд. Но эту функцию легко просто выключить, если она не нужна.
freeExec, я в жизни неоднократно забивал/подбивал гвозди или выкручивал шурупы пассатижами, но это же слегка неправильный способ использования инструмента, да?
А в задаче автора эти гигантские словари ещё и не помогут, так как вряд ли эти полтора гига будут одинаковыми каждый день до байтика. А если даже да, то проще уж тогда считать md5 архива и вместо очередного бэкапа класть текстовый readme.txt "сегодня ничего не поменялось".
И вообще, тут правильно говорят, что инкрементальные бэкапы будут намного более эффективными для задачи автора, я уж не говорю о том, что они могут добавить практической пользы сами по себе.
van000, в данном случае большая ошибка считать, что архиватор реально вычисляет повторения. На самом деле нет.
Архиватор, с некоторой долей условности, смотрит в ближайшем потоке данные, определяет, какие из них "повторяются", и заменяет данные на словарь плюс ссылки на этот словарь. При "хороших" данных такая замена становится заметно короче исходных данных, при не очень хороших - ну хоть не больше... Но чтобы это работало на двух гигабайтных файлов, архиватор должен положить весь этот огромный гигабайтный файл в словарь, чего он делать, конечно же, не будет.
milanova48, не существует универсального решения для этой задачи. В простейших случаях можно использовать программы, которые скачивают страницы сайта по ссылкам, начиная от главной страницы, как может сделать тот же wget из предыдущего комментария, хотя бывают и программы с графическим интерфейсом, но я не слежу за ними и не знаю современных, из двадцатилетней давности могу вспомнить только offline explorer и teleport pro.
Но современные сайты часто обвешаны javascript, в них контент формируется динамически, и просто так их скачать невозможно. В общем случае придётся писать свой собственный парсер сайта, что может быть не очень просто.
Иногда может помочь sitemap, из которого можно дёрнуть список ссылок для последующего скачивания, но он может оказаться не очень простым. Например, у этого магазина он содержит 9 файлов: https://www.regard.ru/sitemap.xml - и я не уверен что в них реально ссылки на весь ассортимент, а не просто какая-нибудь первая тысяча ссылок сайта...
Ну и если начать активно качать всё подряд с сайта, то он может забанить и перестать отдавать контент полностью, как с помощью своих собственных механизмов, так и через использование сторонних решений типа CloudFlare.
Peq, ну вот смотри, ты отправляешь "Введите ник" и ТУТ ЖЕ, не дожидаясь ответа, делаешь что-то ещё. Это так не работает.
Большинство библиотек для таких задач работают на концепции обработки событий. Пользователь написал сообщение - отправляем ему "Введите ник" и где-то у себя помечаем, что следующее сообщение от этого пользователя (но только от него!) - это ник. Получаем следующий ответ - теперь мы знаем ник - можем вывести следующий ответ.
Для этого обычно используется конечный автомат (Finite State Machine, FSM), и в телеботе есть встроенный очень простой в использовании FSM на основе вызовов register_next_step_handler. Погуглить "telebot step_example.py" и будет официальный пример, на котором можно разобраться в принципе его работы.
Использовать input, конечно же, не получится, ведь input считывает с консоли того сервера, где запущен бот.
Очеивдно, полагаться не на имена классов, а на другие особенности структуры документа. Например, можно выяснить, что это всегда второй по счёту div внутри тэга article и именно по такому принципу его находить.
Олег Трубин, всё очень просто: если в процессе выполнения POST-запроса случится редирект, то он приведёт к GET-запросу. В указанном случае видно же, что происходит именно это.
Ziptar, меня тоже обычно устраивает, просто если вдруг неожиданно нужно вот малепусенькую функцию, то оказывается, что надо покупать Pro-версию, сервер или что-то ещё, в то время как в адекватных операционных системах это вообще не вызывает никаких проблем. И я не считаю, что это нормально.