Владимир, я не пробовал заставить это работать в браузере (и, честно говоря, не знаю, можно ли на деле в javascript скрыть referer из ajax-запроса или audio-тэга). Я проверял с помощью curl в консоли, подставляя отдельные параметры из реального запроса в попытке найти такую комбинацию, при которой случится 403.
aileadz d, простейший вариант выглядит так: бот при получении сообщения пересылает его в заранее созданную закрытую группу с некоторым id. Когда пользователь из этой группы (владелец бота или кто-то, кого он туда в группу пустил) отвечает на сообщение с цитированием, бот по id цитируемого сообщения определяет chat_id исходного сообщения и шлёт копию сообщения пользователю обратно в част с ним. Главное не забывать именно цитировать, чтобы бот понимал, кому из пользователей это ответ.
Для этой задачи подойдёт любоая библиотека по вкусу. Но основы языка освоить всё равно надо.
Юрий Иванов, не знаю. Может, просто User-Agent в боте переопределить поможет?
Так-то без изучения кода и его отладки ничего нельзя сказать. Там мог быть баг вообще от начала существования бота, а условия для его проявления раньше не возникали и случились только сейчас.
Юрий Иванов, я бы для начала сравнил поведение "со своего компьютера" с тем, что у боевого бота. Если не различается, значит, вероятно, бот сломался и надо его чинить. Если различается, то вполне так может быть, что сайт по IP видит, что это сеть хостера и нарочно ломает своё поведение.
Насколько я понимаю, puppeteer как selenium запускает браузер. В браузере сложно управлять редиректами. А вот в любой библиотечной реализации http-клиента обычно есть флаг, который отключает редиректы, либо даже это поведение по умолчанию (и редиректы надо обрабатывать самому).
Возможно, там какой-нибудь Cloudflare, ну или сайт смотрит на Referer и если он внешний или отсутствует - кидает на главную страницу сайта. Или парсер цепляет какие-то дополнительные элементы типа "пользователи, которые это покупают, также интересуются... Или на самом деле ссылка устарела и редирект там просто поведение при 404.
И да, есть ещё вариант, что сайт так себя ведёт при обращении с сетей хостеров. Сейчас так многие борятся с хакерами, парсерами и мамкиными ддосерами.
Владимир, нужно его не передавать вообще. Тогда отдаёт бинарный файл. Если Referer есть, то отдаёт 403 и в теле ответа почему-то текст заголовка Referer.
Вообще это выглядит не очень адекватно, если это штатный механизм, я бы спросил в поддержку комментарии...
В консоли на файлы 403. Путём экспериментов выяснил, что проблему создаёт заголовок Referer, если дёргать url без него - файл отдаётся.
Это вообще штатный способ взятия файлов с яндекс-диска или нелегальный костыль? Если второе, то лучше на него не полагаться, потому что будет ломаться постоянно.
ValdikSS, не очень разбираюсь, как по схеме понять, включён ли proxy arp. Я сталкивался с сетями, где на циске вот прям по умолчанию proxy arp работает годами, пока не случается какая-нибудь фигня типа провайдерскую сеть воткнули в vlan с внутренней, и пошло-поехало...
fenrir, это чаще всего делают реакциями под сообщениями. Например, в специальном канале #role-selection два сообщения, на одном реакциями флаги стран, на другом значок десктопа и мобильника, какие реакции поставили - такие роли бот и выдал.
Он возвращает список (list) результатов, каждый результат представляет из себя кортеж (tuple). Соответственно, строка результата одна и значений в ней тоже одно, что и выглядит так, как указано. Далее берём первый элемент списка, затем первый элемент кортежа, и получаем требуемое.
За подробностями рекомендую обратиться к любому учебнику по Python.
Даже статическая вёрстка по готовому макету - уже сложная задача. А тут, вероятно, динамический контент со скриптами и автогенерируемыми по настройкам css. Тут только сидеть и вникать, как всё устноено, вытаскивать готовые скрипты, элементы вёрстки и дизайна... Скорее всего, намного проще будет повторить, в том числе с учётом своего сугубо индивидуального функционала собственного сайта.
Грубо говоря, это можно сделать так. Берём некий "базовый дизайн" (css) и к нему применяем кастомный пользовательский css, заполняемый параметрами из пользовательского профиля. Тут в параметре цвет шрифта, там url фоновой картинки - и вот пользовательский дизайн готов. Продвинутым пользователям можно разрешить редактировать прям свой личный css напрямую.
Вон, в ЖЖ ещё сто лет назад разрешали личные CSS. Или вот в Википедии можно личный monobook.css (а также monobook.js).
Правда, браузерные расширения для user styles позволяют делать то же самое на большинстве сайтов (увы, но не на всех - некоторые адово извращаются с дизайном) даже без явной поддержки со стороны этих сайтов.
О, получилось добавлением в html:
<meta name="referrer" content="no-referrer">
https://developer.mozilla.org/en-US/docs/Web/HTTP/...