Никита Савченко, это довольно странно, потому что 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-версию, сервер или что-то ещё, в то время как в адекватных операционных системах это вообще не вызывает никаких проблем. И я не считаю, что это нормально.
Ziptar, ясное дело, что очень простой вопрос софтверного уровня несложно реализовать, но винда существует в идеологии продажы даже тривиальных фич за отдельные деньги. И то, что в опенсурсе существует с незапамятных времён, они так и будут до тепловой смерти Вселенной считать "интырпрайз-фичей" и за пользователя решать, что ему это не нужно...
Akina, умеет с любой картой, это чисто софтверный вопрос. То, что на винде это можно сделать на уровне драйвера для некоторых сетевух - это на самом деле маразм.
0xC0CAC01A, это НЕВОЗМОЖНО, так как в любом случае потребуется выполнить javascript, а он требует в качестве контекста браузерные структуры, DOM итд, которых без полноценного браузера практически нереально имитировать.
Либо вручную разбираться в структуре конкретного сайта, то есть писать полноценный парсер.
Nightmare A, обычно нужно как-то особенно исхитриться, чтобы символы стандартной библиотеки stdc++ не нашлись. Тут на этапе компиляции был сгенерирован референс с именем, которого не нашлось в библиотеке.
Я с std::string никогда проблем не имел, но глядя на ответ ниже и немного подумав могу предположить, что где-то в коде может быть попытка проинициализировать строку не из string и даже не из char*, а из long. Это так не работает. Можноо было бы по-C-шному взять sprintf, но более провославно использовать ostream.
Кстати, это легко проверить: зайти на этой же системе другим браузером на те же сайты.