Если нужен отрендеренный DOM страницы, то его в общем случае нельзя получить без полноценного браузера с js (хотя бы в headless-режиме). Причём сложно сказать в общем случае, в какой момент страницу можно считать "загруженной целиком". Ведь она, например, может подгружаться по мере прокрутки или при нажатии на какие-то элементы. Можно, конечно, ждать 5 секунд и сохранять всё, что сохранилось в DOM, но результат негарантирован. Для нормального использования придётся использовать selenium и учитывать конкретные особенности этого сайта.
Если нужно полноценную страницу с её поведением и оформлением (css, скрипты), то wget умеет их загружать, но только в том случае, если они непосредственно указаны в link- и javascript-тэгах. Если они подгружаются каким-то сложносочинённым кодом (как сейчас модно), то wget тут справиться не может в принципе. Можно самостоятельно изучить код сайта или происходящее в консоли браузера и на этом основании вычислить, что именно скачать вместе с самой страницей, но это тоже индивидуальная работа с конкретным сайтом.
Drno, значит у исходящих DNS-запросов local_port=53. Можно, например, использовать модуль state:
iptables -A INPUT -i enp2s0 -m state --state NEW,INVALID -p tcp --dport 53 -j DROP
iptables -A INPUT -i enp2s0 -m state --state NEW,INVALID -p udp --dport 53 -j DROP
Drno, да, кстати, этот скрипт всегда дописывает iptables, не очищая их. Может, там осталось что-то от предыдущих запусков или от системных правил по умолчанию?
Drno, если локально DNS не запущен - то пускай ломятся на 53 порт на здоровье, всё равно DNS там нет. После того, как всё важное будет починено, можно уже пытаться резать лишнее, отслеживая, чтобы важное продолжило работать.
По умолчанию в iptables действует policy ACCEPT во всех цепочках, поэтому явно прописывать ACCEPT в FORWARD нет смысла - там же нигде не делается REJECT или DROP. Но это надо убедиться, что policy не переопределено (iptables -L).
Также советую добавлять ключи, которые показывают число пакетов и число байт, которые сработали на нужном правиле.
Это заменяет destination во всех транзитных пакетах gre, в обе стороны. То есть ответные пакеты от 192.168.122.2 тоже пойдут в 192.168.122.2. Надо как-то скорректировать (про source или по интерфейсу).
-I PREROUTING приведёт к тому, что правила будут добавляться не в конец цепочки PREROUTING, а в начало, в итоге правила будут идти задом наперёд.
Не очень понятно, зачем вообще использовать DRF, если не использовать ORM? В чём глубокий смысл?
Конечно, могут быть отдельные редкие задачи, для которых зачем-то там полезно сделать прямой запрос в базу, но если всё приложение никак Django не использует - зачем тогда ему Django?
Станислав Оськов, если есть данные в базе, то пишем бота, который регулярно запрашивает данные из базы (например, используя условие created_at > время_предыдущего_запроса) и посылает их в телеграм.
В принципе, можно и в самом коде сайта сделать отправку прям рядом с тем кодом, который сохраняет данные в базе.
Отправку можно делать безо свяких библиотек - достаточно вызвать с токеном бота метод sendMessage. Примеров в интернетах полно.
Закрытие браузера на мобилах - это его немедленное отстреливание без возможности выполнения кода. На мобилах это вообще нормальное отношение к запущенным программам, особенно к фоновым. Их и система убивает в любой момент, как потребуются свободные ресурсы.
Я тут на днях объяснял, что смысл асинхронного программирования был бы несколько понятнее, если воспринимать корутины как функции в смысле функционального подхода. Не такое уж это и плохое дело - объяснить немного про ФП. В конце концов, не нужно учить полноценному практическому программированию - важно показать основные идеи.
Если нужно полноценную страницу с её поведением и оформлением (css, скрипты), то wget умеет их загружать, но только в том случае, если они непосредственно указаны в link- и javascript-тэгах. Если они подгружаются каким-то сложносочинённым кодом (как сейчас модно), то wget тут справиться не может в принципе. Можно самостоятельно изучить код сайта или происходящее в консоли браузера и на этом основании вычислить, что именно скачать вместе с самой страницей, но это тоже индивидуальная работа с конкретным сайтом.