Nudecrawler — паук для поиска голых женщин в telegra.ph.

Как программист, я стремлюсь все автоматизировать. Как мужчина, я склонен к Cherchez la femme. Кроме того, как человек, живущий в сети уже больше, чем существует pornhub, я всяких сисек и порно повидал столько, что уже не всегда уверен, интересно ли мне это.

— Вы что, за меня и порно смотреть будете!?— Ага!
— Вы что, за меня и порно смотреть будете!?
— Ага!

NudeCrawler — вершина client‑side технологий для любителя девушек: он не только сам за вас ищет порно, а еще и даже сам за вас его смотрит, чтобы вам не пришлось! Впрочем, он ведет лог, что и где посмотрел и как ему понравилось, так что, можно «подсматривать за роботом, как он подсматривает за не‑очень‑публично выложенной картинкой, где фотограф подсматривает как девушка переодевается». (В общем, это секс в квадрате, кубе и гипер‑кубе).

Конечный результат работы программы выглядит примерно вот так (на всякий случай я убрал цифры, чтобы специально (слава Богу и Во Славу Сатаны, тут это одно и то же) испортить ссылку — но теперь вы легко и сами сможете найти):

INTERESTING (16 video) https://telegra.ph/Alina-XX-XX-XX
Nude: 129 non-nude: 11
Total video: 16

INTERESTING (30 video) https://telegra.ph/Alisa-XX-XX-XX
Nude: 52 non-nude: 11
Total video: 30

Неэффективное интригующее предостережение

Неважно, какого вы пола, неважно сколько вам лет, какая у вас ориентация, насколько широки ваши сексуальные горизонты и какие извращения вам наиболее интересны — все равно, с NudeCrawler вы найдете много того, что вам не понравится.

Поверьте мне, я повидал некоторое дерьмо. Буквально.

Например, однажды NudeCrawler мне принес вот эту страничку (Критерием интересности было либо сколько‑то NSFW картинок, либо любое видео.) Предупреждаю: на видео яркие цвета, вспышки, если у вас эпилепсия - оно того не стоит. Да и в любом случае, оно того не стоит.

Чем интересен telegra.ph и что там можно найти?

Не зря В. И. Ленин призывал захватывать телеграф в первую очередь.

Телеграф позволяет размещать контент (и имеет свой хостинг картинок и коротких видео) анонимно без модерации. К тому же — очень легко. Контент не запаролен, открыт всем, поэтому какие‑то совсем уж конфиденциальные вещи там вряд ли кто‑то хранит. Но с другой стороны, в прежнюю эпоху (до появления nudecrawler'а), найти какую‑то интересную страничку там невозможно. Песчинка надежно спрятана в куче песка. Но вот с появлением nudecrawler находить интересное стало проще.

Что я (без особых намерений, просто тестируя nudecrawler) находил в telegra.ph:

  1. Обнаженные фото, комиксы, фотосеты и «сливы» (любительские и с OnlyFans / Patreon). И в усеченном виде (вроде «вступайте в наш платный канал чтобы увидеть слив полностью») и в достаточно полном (более 100 картинок. Рекорд за 3 дня — 163 картинки в одной находке).

  2. Коллекции разных «мрачных» видео (драки, [роскомнадзор] в метро под поезд, итд)

  3. Описание нескольких мошеннических схем, прямо готовые гайды, бери да пользуйся. И советы, и ссылки, где они необходимы. Кстати, некоторые из них мне понравились, были довольно остроумными. Я о них раньше не знал (Про звонки из «службы безопасности сбербанка» и из «следственного управления» я уже лет 10 как в курсе).

  4. Огромные списки из десятков ссылок ссылок на разные редиректоры и хостинги «сомнительной репутации» вроде mega.nz. На части ссылок — фотки‑видео модели Amouranth, часть удалены, а часть «за грубое нарушение условий использования сервиса».

  5. Личные письма (кто‑то вот так общается, наверное, пишет «незапечатанное» письмо в телеграфе и высылает ссылку. Честно: перестал читать, когда понял, что читаю). Не надо так делать, телеграф — не подходит для всего личного.

  6. Просто галереи в жанре «вот я гуляю по парку», «вот я сделал ремонт на даче»

  7. Объявления о продаже‑аренде недвижимости и автотранспорта

  8. Военные и патриотические статьи и фото (черновики может?) разных сторон и на разных языках.

  9. Огромное количество страниц формата «порноролик — порнорассказ — второй порноролик». Похоже, кто‑то скриптом их создал. Причем в рассказе на гомо‑ тематику (я не вчитывался! честно!) порно‑ролики не в тему рассказа, а нормальные, с общечеловеческими ценностями, где несколько европейских афро‑американцев без явного уважения наслаждаются одной белой женщиной.

  10. Ну и паролей к разным ресурсам там тоже достаточно. Многие гуглятся по запросу вроде: site:telegra.ph password. Конечно же, так тоже не надо делать.

Не храните пароли в Telegra.ph! Rentry.co гораздо удобнее - сразу видно количество просмотров
Не храните пароли в Telegra.ph! Rentry.co гораздо удобнее - сразу видно количество просмотров

Установка

pip3 install nudecrawler

(лучше в virtualenv) или же, прямо из репозитория (кто не рискует, тот не пьет антибиотики):

pip3 install git+https://github.com/yaroslaff/nudecrawler

Вместе с ним поставится встроенный (и медленный) детектор nudepy. Для «поиграться», и чтобы не тащить за собой кучу зависимостей — вполне нормально, но если вам нужно будет использовать другие, то лучше использовать их через docker или скачать требуемые пакеты для использования NudeNet (подробнее — на странице проекта)

Кстати, если фильтрация не нужна вообще, можно использовать просто флажок -a.

Как пользоваться?

Начнем с самого быстрого (а то не терпится ведь!):

nudecrawler -a Сиськи
INTERESTING (ALL) https://telegra.ph/Siski-XX-XX
  Total images: 8
  Total video: 1

INTERESTING (ALL) https://telegra.ph/Siski-XX-XX
  Total images: 4

INTERESTING (ALL) https://telegra.ph/Siski-XX-XX
  Total images: 0

Мы указали -a, то есть, nudecrawler вообще не фильтровал и показывал все найденные страницы. (даже без картинок).

Давайте поищем красивых людей в надежде на что‑то прекрасное

nudecrawler Маша Наташа "Анатолий Евгеньевич"

Теперь он будет работать медленнее, потому что каждую картинку будет прогонять через встроенный Nudepy фильтр. Кроме того, используются параметры по умолчанию — на странице должно быть 5+ картинок (иначе — сразу отбрасывается), далее, чтобы страница засчиталась как интересная и выдалась в ней должны быть хотя бы 1 NSFW, либо же любое видео. Это можно подкрутить чере параметры --nude, --total и --video. А еще можно добавить -v чтобы видеть, как он работает. По‑умолчанию ищутся страницы за даты за последние 30 дней (но годы при этом могут быть любыми, так уж устроен телеграф). Это можно подкрутить через -d.

Если хотим искать по множеству слов, то используем вордлист через -w file. Вордлист может состоять как из слов, так и из «базовых URL». Базовый URL — это урл без даты и номера, например https://telegra.ph/secret — по этому адресу нет странички, но когда добавим к нему дату и порядковый индекс — какие‑то найдутся.

Из репозитория можно скачать wordlist.txt на 3000 английских слов, или же urls.txt 11 200 базовых URLов телеграфа — это уже отфильтрованные URL (через bulk‑http‑check), по каждому из них на telegra.ph есть страницы (а вот, например, на слово «абажурами», страниц не было, поэтому оно в urls.txt не попало).

Как nudecrawler находит незасвеченные странички?

Адрес страницы в телеграфе зависит от заголовка и для страницы с заголовком "Саша Грей" он будет иметь вид, например:

https://telegra.ph/sasha-grey-01-02-123

01 - "сегодняшний" месяц, когда создается страница. 02 - день месяца (число). И если https://telegra.ph/sasha-grey-01-02 уже существует, то телеграф добавляет еще "счетчик" 2 если и это занято, то 3, итд.

Если ползуну указано искать "Саша Грей", он проверяет все сегодняшние странички с этим заголовком, затем вчерашние и так на -d дней назад.

Если вдруг, страница с индексом 100 будет, а 101 нет - ползун все равно попробует 102 и далее, пока не будет "дырка" в -f страниц подряд. (исходно 0, но можно повысить)

Поэтому, спрятать женщину от ползуна можно двумя способами:

  • Использовать очень необычный заголовок (как пароль, чтобы он не мог быть угадан по вордлисту)

  • Создать большую "дырку" в счетчиках, например, если ползун будет запущен с -f 10, а дырка будет в 20 страниц, которых нет (например с 100 по 120), то 121 он уже не будет пробовать.

Подключаем детекторы!

Я затрудняюсь ответить, какой детектор точнее, аккуратнее, потому что сами границы понятия «голости» довольно нечеткие (на той же тестовой странице разные детекторы находили от 10 до 20 NSFW картинок ), но вот по скорости, nudepy точно медленнее других в 6 раз.

Детекторы обычно работают через tensorflow / keras, тащут за собой огромную кучу зависимостей, поэтому я советую использовать их через docker контейнеры. Например:

sudo docker run --rm --name nsfw-api -d -p 3000:3000 ghcr.io/arnidan/nsfw-api:latest

Теперь можно сказать nudecrawler'у: --detect nsfwapi и он будет обращаться к нему. Все будет работать быстрее. Про другие варианты, чтобы не перегружать статью — на страничке проекта. Этот способ — вполне хороший.

У этих детекторов есть утечки памяти (у adult‑image‑detector — тоже и еще сильнее). При очень долгой работе он просто сожрет всю доступную память и упадет. Чтобы такого не случилось:

--stop 200 --refresh PATH/TO/refresh-nsfw-api.sh

Теперь, через каждые 200 картинок мы перезапускаем контейнер (но можно и через гораздо больше, главное, чтобы хоть иногда).

Не только для поиска голых женщин в телеграфе!

Во-первых, не только в телеграфе:

nudecrawler --detect nsfwapi --url1 https://oboobs.ru
....
INTERESTING (17 nudes) https://oboobs.ru
  Nude: 17 non-nude: 1

Оказывается, на известном хабровчанам oboobs.ru тоже есть сиськи! Можете взять список всех.com доменов, например, прогнать каждый через nudecrawler и вот у вас готовая база «взрослых» сайтов, которую можно использовать в родительских фильтрах.

Во‑вторых, можно подключать любые свои детекторы. На самом деле детектор — это простой скрипт, любая программа на диске, которой передается либо имя скачанного файла, либо его URL. Подключается либо через --detect-image PATH либо --detect-url PATH. Можете хоть /bin/true использовать в качестве такого «озабоченного» детектора, который во всем видит неприличность.

Например, AWS Rekognition умеет обнаруживать оружие на фото. Подключите его и можете найти странички, где есть фото оружия. Или просто можете искать собственные фотки в сети.

А если запустить с ключом -a и поиск по слову "Пароли", вы удивитесь, как много людей хранят пароли в открытых страничках в телеграфе... В том числе от достаточно важных ресурсов, таких как хостинги. (Тут я должен сказать, что пользоваться чужими паролями незаконно и неэтично)

Пожелания?

Буду рад любым отзывам и пожеланиям. Может быть советам по интересным детекторам и другим идеям, какие фишки стоит добавить, как лучше отфильтровывать скучные странички (Вроде миллиона тех страничек, где два ролика и рассказ между ними).

Дополнения

Новая версия

Выложил новую версию (последняя сейчас: 0.2.3). Основная особенность - внутренний кэш. Самое долгое время занимает фильтрация картинок, а уникальных картинок в телеграфе на самом деле не так уж и много, он забит повторениями. Кешируется и по URL и по SHA1 сумме. Стастистика кеша за ночь очень впечатляет:

    "cache": {
        "urls": 4704,
        "sums": 4704,
        "hit_url": 79504,
        "hit_sum": 284,
        "miss_url": 4988,
        "miss_sum": 4704
    }

Менее 5к картинок в кеше (о каждой - только сумма и урл), и при этом почти 80 000 попаданий! Новая версия гораздо быстрее. Да, на каждую из миллиона повторых страниц все равно уйдет какое-то время, но гораздо меньше. Кстати, еще интересные цифры из статистики моего ползуна:

"found_interesting_pages": 10361,
"found_nude_images": 157375,
"gap_max": 4,
"processed_images": 89860,

Еще последняя версия умеет быстро проматывать повторные страницы (иногда их - несколько тысяч. Даже с кэшем их долго обрабатывать, обновитесь хотя бы до 0.2.3).

Другие мои проекты и где справедливость? :)

Я писал про showcert (showcert repo) - Гораздо более простой и удобный инструмент для админа чем openssl, и в большинстве случаев, может заменить его. (После showcert я вообще перестал openssl пользоваться, он уделывает OpenSSL как пивная открывалка в открывании пива уделывает мультитул с 30 лезвиями, включая пассатижи и молоток). За все время, showcert получил 22 звезды на github (и то, мне кажется, больше звезд со stackoverflow, чем с хабра).

Я писал про okerr (дважды) (okerr repo). Большой по трудоемкости проект, сделанный практически "в одного". Большинство мониторингов делаются большими командами для своих больших целей, okerr - мониторинг (как self-hosted, так и полностью бесплатный(!) сервис) для небольших проектов (от одного сайта. у нас окерр следит за парой десятков серверов). С возможностью внешних проверок из разных стран, с оповещениями через Телеграмм и на почту, с УНИКАЛЬНОЙ возможностью failover (когда у вас вылетает один сервер, но сайт по прежнему живой - все запросы обслуживаются други), с очень легкой клиентской частью (и можно даже без нее) и с очень простым дописыванием своих проверок (Если вы знаете, что "systemctl status nginx" возвращает не ноль если nginx лежит - то вы уже можете добавить эту проверку). Мониторинг, с проверками доменов на истечение, страничек на коды и контент, сертификатов на валидность и опасность скорого протухания, IP адресов на наличие в антиспам базах, логов на аномальный рост, бэкапов на свежесть и соответствие ожидаемому размеру.... В общем, у нас после перехода на окерр вообще количество внезапных проблем раз в 20 уменьшилось - все или предотвращаем или узнаем сразу же. Две звезды на гитхабе. Две. Ну я понимаю, окерр - это больше сервис (сервер ставить тяжело). Но все равно.

Я писал про evalidate (evalidate repo). Безопасный eval() для Питона. Проблема, которая часто считается условно-невозможной, для которой почти нет безопасного решения, а даже популярные гайды советуют решение, в котором есть уязвимость(!). А evalidate решает ее! Еще asteval решает отчасти похожую задачу, но гораздо медленнее (1.2 секунды в бенчмарке против 0.017 секунд). 3 звезды.

Я писал про hashget (hashget repo). Дедупликатор, который иногда позволяет ужать архивы на 99.5% (причем, в довольно типичных ситуациях). 3 звездочки.

Но стоило мне один раз написать про поиск сисек.... До публикации, у ползуна было 4 звезды (я вообще нигде не упоминал, просто магия сисек приводила к нему людей). Не прошло и суток, сейчас у ползуна 45 звезд! Спасибо, всем кто форкнул и лайкнул! :-) Это очень мотивирует и хочется дорабатывать новые фишечки в него.

Комментарии (94)


  1. baldr
    00.00.0000 00:00
    +46

    Вот для таких вещей и изобретался интернет.

    pip3 install git+https://github.com/yaroslaff/nudecrawler

    А также для вот такого - чтобы про прямой ссылке из репозитория запускать невесть что на вашем контьюпере под видом голых деbушек. Кстати, вы забыли sudo в начале добавить.

    Hidden text

    Кстати, про sudo это был сарказм. А вот не сарказм: спешу напомнить что после установки пакета по прямой ссылке из репозитория вы можете запустить себе неизвестно что. Даже если прямо сейчас там просто краулер голых девиц, то ничто не помешает автору (кроме высоких моральных устоев) приделать еще и краулер ваших cookie из браузера, паролей и прочих биткоин-кошельков на диске и в домашней сети.

    Что делать: запускать хотя бы в docker-контейнере, а лучше на виртуалке.


    1. xenon Автор
      00.00.0000 00:00

      Или через sudo (не сарказм), но от nobody или через отдельного юзера. nudecrawler'у не требуются никакие особые права.


    1. BoberMod
      00.00.0000 00:00
      +12

      после установки пакета по прямой ссылке из репозитория

      а из pypi что-то меняется?


      1. baldr
        00.00.0000 00:00
        +10

        В общем-то нет, не меняется. Если только зафиксировать коммит из репозитория и проверить весь код в этом коммите - тогда еще на что-то можно надеяться.

        Но ведь пока вы будете этим заниматься - уже всех голых девушек из интернета скачают..


    1. xenon Автор
      00.00.0000 00:00
      +14

      Я в целом разделяю вашу паранойю, но у меня вопрос. А как вы пользуетесь миром javascript'а и его npm и composer? Там же ведь каждый пакет тащит за собой целое дерево из сотен пакетов, и все с гитхаба, никем не проверяются, не сертифицируются, все на совести авторов пакетов.


      1. baldr
        00.00.0000 00:00
        +5

        Да, так и пользуюсь. Фронт собирается в докере, а уж что там оно скачало - приходится верить npm'у. Версии зафиксированы где можно и не так много всего в проекте тянется. Но параноик внутри фейспалм каждый раз делает.


  1. sintech
    00.00.0000 00:00
    +5

    Не написано как он собственно ищет. Если у каждой странички уникальная ссылка и они нигде не засвечена, то как о ней узнаёт ползун?


    1. xenon Автор
      00.00.0000 00:00
      +12

      Адрес страницы зависит от заголовка и для страницы с заголовком "Саша Грей" он будет иметь вид, например:

      https://telegra.ph/sasha-grey-01-02-123

      01 - "сегодняшний" месяц, когда создается страница. 02 - число. И если https://telegra.ph/sasha-grey-01-02 уже существует, то телеграф добавляет еще "счетчик" -01 если и это занято, то 02, итд.

      Если ползуну указано искать "Саша Грей", он проверяет все сегодняшние странички с этим заголовком, затем вчерашние и так на -d дней назад.

      Если вдруг, страница с индексом 100 будет, а 101 нет - ползун все равно попробует 102 и далее, пока не будет "дырка" в -f страниц подряд. (исходно 0, но можно повысить)

      Поэтому, спрятать женщину от ползуна можно двумя способами:

      • Использовать очень необычный заголовок (как пароль, чтобы он не мог быть угадан по вордлисту)

      • Создать большую "дырку" в счетчиках, например, если ползун будет запущен с -f 10, а дырка будет в 20 страниц, которых нет (например с 100 по 120), то 121 он уже не будет пробовать.


      1. KonstantinGreat
        00.00.0000 00:00
        -7

        your message has max value, but can be decided by own company, but is another story, thank you


  1. ReinRaus
    00.00.0000 00:00
    +1

    Как-то раз наткнулся на телеграфе на страничку с нюдсами, но самой интересной была ссылка в конце страницы, переходишь по ней, а там опять много нюдсов и внизу штук 20 мутных URL и ещё одна ссылка, которая снова ведёт на много нюдсов и ещё один список мутных URL, и снова ссылка на аналогичную страницу.

    Предположил, что это какой-то способ сообщать центральные сервера какому-нибудь ботнету, а адреса этих серверов прячут вниз страницы, чтобы их можно было увидеть только пролистав нюдсы.


    1. xenon Автор
      00.00.0000 00:00

      Не знаю, мне кажется это избыточно сложным. Лучше вот как тот пароль из статьи - страничка с какой-то белибердой, которую только ботнет может расшифровать. Ну и в Телеграф сложно через долгое время изменять содержание страниц, если кука протухла - то все, даже автор уже не может изменить. Rentry.co в этом плане лучше.


    1. playermet
      00.00.0000 00:00
      +7

      Похоже на какие-то сео-трюки для поднятия в поисковиках.


  1. Crafter2012
    00.00.0000 00:00
    +4

    Например, однажды NudeCrawler мне принес вот эту страничку (Критерием интересности было либо сколько-то NSFW картинок, либо любое видео.)

    Настоятельно рекомендую вывесить предупреждение к этому ролику. Яркие вспышки, могут вызвать эпилептический припадок, у любознательного человека.


    1. xenon Автор
      00.00.0000 00:00
      +4

      Да, добавил.


      1. roginvs
        00.00.0000 00:00
        +3

        Ну как, как так получилось что по этой ссылке не рикрол?


    1. Maccimo
      00.00.0000 00:00
      +1

      Вспоминаются строки классика:


      Но в сети как назло,
      Чёрный баннер живет.
      Кто увидит его,
      Моментально умрёт.

      (Беломорс — Чёрный баннер)


  1. moroz69off
    00.00.0000 00:00
    +5

    подсматривать за роботом, как он подсматривает за не-очень-публично выложенной картинкой, где фотограф подсматривает как девушка переодевается

    Прямо как из анекдота:

    Анекдот

    Русского ...т на партсобрании
    за то, что посмотрел американский фильм
    про то как армянин ...т еврея
    который подсматривает в замочную скважину
    за французом, который ...т свою женщину


    1. moroz69off
      00.00.0000 00:00
      +9

      В доме, который построил Джек.


    1. ZiggiPop
      00.00.0000 00:00

      А что за фильм? :)


      1. moroz69off
        00.00.0000 00:00

        Название я забыл. А сюжет простой, он в анекдоте 3 строкой


      1. neonkainside
        00.00.0000 00:00
        +1

        Вам же дали бота чтобы найти :)


  1. perfect_genius
    00.00.0000 00:00
    +2

    Так ведь и на детское порно можно наткнуться?


    1. SquareRootOfZero
      00.00.0000 00:00
      +36

      С какой интонацией следует читать этот комментарий — ужаса или надежды?


      1. perfect_genius
        00.00.0000 00:00
        +1

        Я всегда стараюсь придерживать нейтральной интонации в комментах.


        1. SquareRootOfZero
          00.00.0000 00:00
          +4

          Да-да, я так и подумал.


          Заголовок спойлера

          image


          1. lain8dono
            00.00.0000 00:00
            +2

            Если вам так уж интересно, то откройте уже для себя скрытосети. Например в русскоязычной вики в i2p есть много разной интересной информации вроде коллекций магнетов на несколько терабайт.


            1. 0xd34df00d
              00.00.0000 00:00
              +4

              Можно ещё устроиться в крупную компанию и заниматься там обучением моделек по детектированию этого вот всего. В отличие от скрытосетей, ещё и деньги платят!


    1. vassabi
      00.00.0000 00:00

      а вы это из японии спрашиваете или из австралии ?


      1. perfect_genius
        00.00.0000 00:00
        +4

        Конечно, товарищ майор!


  1. OlegIva
    00.00.0000 00:00
    +1

    Забавно, статью уже кто-то скраулил в Веб-Архив, друг подсказал.


    1. xenon Автор
      00.00.0000 00:00
      +2

      Думаете, с хабра удалят? Надеюсь, что нет - я в поддержке спрашивал, для каких хабов она подходит (кстати, хаба для Adult/NSFW нет. Сфера есть, а хаба нет). Надеюсь, что останется. Но в крайнем случае - еще гитхаб есть.

      А для параноиков - лучше форкнуть репозиторий и склонировать его к себе на свой комп.


      1. OlegIva
        00.00.0000 00:00
        +1

        Я тоже надеюсь, что не удалят, но две копии на разных ресурсах - это всё же две копии (и нет, это не я, до меня успели сделать). Спасибо за статью, кстати.


      1. morijndael
        00.00.0000 00:00
        +3

        хаба для Adult/NSFW нет

        Есть один хаб, но на другом сайте)))))


  1. lehtym
    00.00.0000 00:00
    -1

    Как запустить на винде?


    1. xenon Автор
      00.00.0000 00:00
      +5

      Так и становятся линуксоидами! :-)

      Думаю, надо начать с того, чтобы поставить на винду Python и PIP. Затем так же. Но как там на винде с docker - я не знаю. Может проще запустить на винде виртуалбокс с линуксом и там поставить?


      1. mided
        00.00.0000 00:00
        +8

        Так в винде есть же свой собственный линукс с покером и Торвальдсем. WSL называется.


  1. vikitoriya
    00.00.0000 00:00
    +9

    Круто, сиськи на Хабре :-)


    1. slonopotamus
      00.00.0000 00:00
      +10


  1. rehci
    00.00.0000 00:00
    -21

    паук для поиска голых женщин

    Господи, но зачем?! Во-первых, порнографии и сексуального контента и так вокруг слишком много, а вы хотите еще и искать? Может вы еще платите за нее?

    Во-вторых, порнография разрушает мозг, у многих людей это становится серьезной зависимостью. Нужно не искать это, а изобретать действенные способы, чтобы ее избегать.


    1. Flux
      00.00.0000 00:00
      +24

      You must be fun at parties.


      1. rehci
        00.00.0000 00:00
        -9

        Вы на этих своих пати смотрите порнографию? :)


        1. morijndael
          00.00.0000 00:00
          +10

          Нет, этим мы занимаемся на оргиях


          1. Didimus
            00.00.0000 00:00
            +3

            Парторг на парторгии


    1. engine9
      00.00.0000 00:00
      +3

      Мозг не разрушает вроде бы, скорее вызывает адаптацию и снижение возбуждения на вид наготы. То же происходит у мужчин гинекологов или нудистов.


      1. 0xd34df00d
        00.00.0000 00:00
        +8

        Пожалуйста, используйте дефис в приложениях. «у мужчин гинекологов или нудистов» — не то же самое, что «у мужчин-гинекологов или нудистов».


        1. engine9
          00.00.0000 00:00

          Спасибо!


        1. CrashLogger
          00.00.0000 00:00
          +1

          сочувствую мужчинам гинекологов )


      1. 0xd34df00d
        00.00.0000 00:00
        +1

        Олсо, теперь, когда мы разобрались с синтаксисом, посмотрим на семантику.


        Первая же ссылка в scholar.google.com по «pornography brain» даёт (Q1-журнал в medicine/misc):


        Results We found a significant negative association between reported pornography hours per week and gray matter volume in the right caudate (P < .001, corrected for multiple comparisons) as well as with functional activity during a sexual cue–reactivity paradigm in the left putamen (P < .001). Functional connectivity of the right caudate to the left dorsolateral prefrontal cortex was negatively associated with hours of pornography consumption.
        Conclusions and Relevance The negative association of self-reported pornography consumption with the right striatum (caudate) volume, left striatum (putamen) activation during cue reactivity, and lower functional connectivity of the right caudate to the left dorsolateral prefrontal cortex could reflect change in neural plasticity as a consequence of an intense stimulation of the reward system, together with a lower top-down modulation of prefrontal cortical areas. Alternatively, it could be a precondition that makes pornography consumption more rewarding.

        Если походить по ссылкам дальше (и плюс-минус доверять ресёрчерам, что они не врут в цитатах), то окажется, что или, например,


        They used an experimental design in order to demonstrate cause and effect. They found that people who use more pornography become less able to wait for gratification than people who use less pornography.

        [ Sesen Negash, Nicole Van Ness Sheppard, Nathanial M. Lambert, and Frank D. Fincham, “Trading Later Rewards for Current Pleasure: Pornography Consumption and Delay Discounting,” Journal of Sex Research 53, no. 6 (2015): 689–700. ]


        Brain studies also now show that increased porn use leads to a slowing down of short-term memory.

        [ Christian Laier, Frank P. Schulte, and Matthias Brand, “Pornographic Picture Processing Interferes with Working Memory Performance,” Journal of Sex Research 50, no. 7 (2013): 642–652, doi:10.1080/00224499.2012.716873. ]


        Прочие ссылки показывают аналогичные результаты (кроме одной, довольно паршивой по качеству статьи «письма в редакцию» с тезисами в духе «не доказано, что атрофия серого вещества — это на самом деле плохо! look ma, i'm gonna deboonk!»).


        Так что нет, разрушает и отупляет.


        Что, конечно, не отменяет того, что некоторый уровень доступности прона может, например, понижать количество преступлений, в том числе преступлений против детей — это немного ортогональные и невзаимоисключающие тезисы.


        Хотя, например, чуваки здесь (откуда я надрал пару ссылок выше) с ссылками же показывают, что


        The research connecting pornography and sexual violence is conclusive.
        There are over 100 studies showing that pornography use is both correlated with and is the cause (shown through experimental studies) of a wide range of violent behaviors. Over 50 studies show a strong connection between pornography and sexual violence.[19] The results are the same in correlational, cross-sectional, experimental, and longitudinal studies: pornography use and acts of sexual aggression are directly connected.[20]

        Это существенно противоречит имеющимся у меня ранее данным — ставлю либо на черри-пикинг ресёрча про- и анти-пронерами, либо, что даже более вероятно, на разные анализируемые когорты.


        1. xenon Автор
          00.00.0000 00:00

          Ох... Минздрав еще никого не убедил бросить курить, но многим испортил удовольствием от курения.


        1. edo1h
          00.00.0000 00:00
          +4

          Так что нет, разрушает и отупляет.

          только в приведённой вами цитате «Alternatively, it could be a precondition that makes pornography consumption more rewarding».


          классическое: наличици корреляции не говорит ничего о направлении причинно-следственной связи, и даже не гарантирует её наличие.


          1. 0xd34df00d
            00.00.0000 00:00

            Если прочитать и следующую цитату, то можно заметить


            They used an experimental design in order to demonstrate cause and effect.

            И всё это в контексте той же системы вознаграждения мозга:


            They found that people who use more pornography become less able to wait for gratification than people who use less pornography.

            Мир, в котором первое исследование также показывает прямую причинно-следственную связь, более консистентен.


    1. Nansch
      00.00.0000 00:00
      +4

      При чём тут сама порнуха? Это же спорт! Поиск! Автоматизация!


    1. chernish2
      00.00.0000 00:00

      Поиск паролей тоже вызывает зависимость?


      1. Nansch
        00.00.0000 00:00
        +4

        Конечно! Стоит только увлечься, а потом устроишься и будешь ходить на работу наждый день, пароли восстанавливать и катриджи заправлять.


    1. fire64
      00.00.0000 00:00
      +2

      Я думаю поиск голых женщин, тут не основная цель. А вот сама тема поиска скрытого куда интереснее)

      В свое время писал парсера разных файлообменников, типа iFolder, где в конце просто менялся id файла.


      1. xenon Автор
        00.00.0000 00:00
        +10

        Да, соглашусь. Голая женщина привлекательная не "мясом", а именно игрой, охотой, предвкушением, без гарантии успеха, когда что-то ловится-ловится, а потом вдруг поймалось, удачей, когда ух и что-то увидел (ветер юбку задрал). И хочется составить карту ветровых потоков в городе (с GPS, СУБД, REST API, аутентификацией, удобным динамичным фронт-ендом, чтобы совместно ее наполнять).

        Голые женщины без этого элемента игры - экземпляры для гинекологии.


        1. 0xd34df00d
          00.00.0000 00:00

          Ну прямо классические крысы Скиннера.


    1. xenon Автор
      00.00.0000 00:00
      +12

      Лучше бы платил - было бы дешевле. Стоимость трудочаса опытного программиста, помноженное на то, сколько времени ушло на паука - хватило бы, чтобы всем читающим это оплатить пожизненный абонемент на порнхаб.

      Но мы же с вами вроде бы все тут IT-шники, все работаем в сфере автоматизации, вычислений и... принятия рациональных решений. Значит, как хорошие профессионалы, должны прежде всего понимать границы действия этих тем.

      Так вот, мое мнение тут такое. Мы живем в интересное время. Сейчас вычислительных ресурсов даже робота-пылесоса достаточно чтобы лучше нас принять многие решения, безошибочно просчитать все. (А если даже недостаточно, то в следующей модели, через 5 лет - будет достаточно). Робот гораздо лучше меня может, например, совершить покупки продуктов в гипермаркете - он не пропустит товар из каталога (я-то могу глазами не заметить), учтет все скидки, и соберет такую корзину, чтобы и для здоровья было вкусно, и учитывает мои предпочтения (например, я редко ем рыбу), и разнообразно, чтобы не повторять то, что ел недавно и при этом еще и в бюджет хорошо уложится. Если робот-пылесос это лучше меня знает и лучше меня вычисляет - зачем тогда я!?

      Мне кажется, тут слово "надо" очень важное. Словом надо - мы помечаем работу. То что НАДО. (Даже если это тяжело, скучно, противно, может даже иногда не очень этично или не очень законно, но, блин, все равно - надо). Вот для работы - есть роботы. Пылесосит пусть робот. И по мере развития человечества, все больше "надо" можно перегрузить на них. А человек - для другого. Не для того что надо по трезвому расчету, а для того что хочется. А у многих вся жизнь проходит в исполнении множества разных "надо".

      Смысл жизни не может формулироваться через "надо" (для чего-то), потому что тогда это делает его лишь средством. Конечный смысл всегда иррационален, может даже вреден по видимым-бытовым критериям. А уже на пути к нему могут быть много рациональных "надо". Мне вот надо было снова разобраться, как HTML парсить через BeautyfulSoup, а для этого надо было найти гайды по нему и примеры использования. Но все эти обоснованные "надо" были ради цели, у которой нет обоснования, просто мой каприз, желание, шило в попе.

      Как у Шукшина:

      — Накормить себя человек никогда не забудет. Вот если бы он не забыл еще хорошую песню спеть, сказку рассказать, черта с рогами выдумать. Вот если бы он не забыл!..

      Вот nudecrawler - это мой черт с рогами. Всего лишь один из мимолетных смыслов жизни. Делать то, что хочется, к чему есть вдохновение, азарт, божья искра. Это весело и интересно. В жизни нет ничего важнее этого.


    1. vconst
      00.00.0000 00:00
      +2

      И не говорите! Ужасы просто!
      А ещё и волосы на ладонях...


  1. indestructable
    00.00.0000 00:00

    На Мак М1 не запустится?


    1. xenon Автор
      00.00.0000 00:00

      Не знаю, никогда с ними не работал, но мне кажется, что наверняка может. Там же "почти unix?". Попробуйте поставить python и pip (это типовая задача, должно быть миллион гайдов). Если получится - то дальше все так же, как с Linux.


      1. indestructable
        00.00.0000 00:00

        Через пайтон 3.10 вроде запустился. Через 3.11 не заработал


        1. vvzvlad
          00.00.0000 00:00

          А как его запустить? А то я " python3.9 -m pip install --user git+https://github.com/yaroslaff/nudecrawler" сделал, а найти что запускать не могу.


          1. xenon Автор
            00.00.0000 00:00

            Поставить вопреки nudepy получилось? После установки, где-то должен быть файл nudecrawler. Где он на винде - я даже представить не могу.


            1. vvzvlad
              00.00.0000 00:00
              -1

              Да это не винда, это макось. Поставить получилось если использовать python3.9, а не 3.11, но вот найти файл не могу.
              Хотя вот если так делать, то что-то пытается запустить:


              [$]  python3.9 -m nudecrawler                                     
              /opt/homebrew/opt/python@3.9/bin/python3.9: No module named nudecrawler.__main__; 'nudecrawler' is a package and cannot be directly executed

              UPD: а, где именно лежит нашел.


              ls /Users/vvzvlad/Library/Python/3.9/lib/python/site-packages/nudecrawler/
              drwxr-xr-x vvzvlad staff  15 KB Sun Apr  2 05:54:25 2023  __pycache__
              .rw-r--r-- vvzvlad staff  54 B  Sun Apr  2 05:54:25 2023  verbose.py
              .rw-r--r-- vvzvlad staff  15 B  Sun Apr  2 05:54:25 2023  version.py
              .rw-r--r-- vvzvlad staff 588 B  Sun Apr  2 05:54:25 2023  localimage.py
              .rw-r--r-- vvzvlad staff 1.1 KB Sun Apr  2 05:54:25 2023  cache.py
              .rw-r--r-- vvzvlad staff  95 B  Sun Apr  2 05:54:25 2023  __init__.py
              .rw-r--r-- vvzvlad staff 9.2 KB Sun Apr  2 05:54:25 2023  page.py
              .rw-r--r-- vvzvlad staff 352 B  Sun Apr  2 05:54:25 2023  unbuffered.py
              .rw-r--r-- vvzvlad staff 293 B  Sun Apr  2 05:54:25 2023  exceptions.py
              .rw-r--r-- vvzvlad staff 2.3 KB Sun Apr  2 05:54:25 2023  remoteimage.py

              Легче не стало, при запуске init ругается так:


              python3.9 __init__.py                                           [7:02:56]
              Traceback (most recent call last):
                File "/Users/vvzvlad/Library/Python/3.9/lib/python/site-packages/nudecrawler/__init__.py", line 1, in <module>
                  from .page import Page
              ImportError: attempted relative import with no known parent package

              UPD: я, в общем, скачал просто с гитхаба и сделал python3.9 ./bin/nudecrawler. Так работает, но с pip-пакетом явно что-то не то происходит.


  1. selivanov_pavel
    00.00.0000 00:00
    +1

    А нельзя ли вместо медленных нейронок для определения наготы прикрутить алгоритм, когда-то придуманный Крисом Касперски - если на изображении много пикселей попадает в определённый цветовой диапазон, то там с высокой вероятностью голое тело? Ну или хотя бы прикрутить его как входной фильтр, а там уже пусть нейронка решает, нюдсы или не нюдсы.


    1. xenon Автор
      00.00.0000 00:00
      +1

      К ползуну все легко прикручивается. Сделайте скрипт, который проверяет файл из параметра и возвращает 1 если там "что-то может быть голое". Кстати, может быть с этими пакетами идет и готовый скрипт для этого? Тогда можно прямо его использовать через --detect-file PATH

      Но ползун и так достаточно быстро находит много страниц, поэтому скорее нужны более жесткие параетры фильтрации, чтобы иметь не десятки тысяч сомнительных страница, а мало, но очень интересных. А у такого метода - много false positive. Мне кажется, я использовал какой-то подобный в начале разработки, но я десятки детекторов перепробовал, сейчас запутался в них. Может у вас есть ссылка на тот, о чем вы говорите (лучше питоновский)? Возможно я бы его и прямо внутрь встроил тогда.

      Но я помню, как один из детекторов нашел мне какую-то страницу где были и голые и не голые фото (прямо как я люблю), я туда полез, а там картинки про возлюби Господа нашего и такое огромное желто-белое сияние от этих букв исходит.


    1. morijndael
      00.00.0000 00:00
      +1

      Это может заодно отсечь разнообразную эротику в белье (там собственно тело занимает не бОльшую часть, но в этом то и фишка!), и оставить только скучные половые сношения


    1. xenon Автор
      00.00.0000 00:00
      +2

      Посмотрел чуть глубже, встроенный тупой-медленный детектор (на nude.py) именно так и работает (потому и не тянет за собой большой и толстый tensorflow)


  1. 314159abc
    00.00.0000 00:00

    Просит c++ установить по этой ссылке

    error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

    А там меня просят пакеты на 8 гигов скачать

    windows user

    Может можно как-то проще решить?


    1. xenon Автор
      00.00.0000 00:00

      Вы про что, по какой ссылке? NudeCrawler'у Visual C++ точно не нужен. Прямо вот совсем точно.


      1. morijndael
        00.00.0000 00:00
        +2

        А питону скорее всего нужен. Если не питону, то нативным либам (Tensorflow как минимум на плюсах)


        1. xenon Автор
          00.00.0000 00:00

          Tensorflow в зависимостях нет, я специально его не включал (уж очень "дорого" выходит). В базовом варианте (со встроенным простым детектором) - без него работает. Да и с докеровскими контейнерами он не нужен (он внутри них). Нужен только если хочется через NudeNet фильтровать.


        1. SquareRootOfZero
          00.00.0000 00:00
          +1

          Нет, самому Питону под Виндой никакой Visual C++ для работы не нужен (несколько dll-файлов нужны, но они включены в инсталлятор). Обычно ругается, когда пытается нативную библиотеку собрать из сорцов. Если библиотека установилась, и уже сама чего-то хочет — скорее, потребует какой-нибудь "visual studio redistributable", а не "build tools".


      1. SquareRootOfZero
        00.00.0000 00:00
        +1

        Оно у вас "pure Python" или таки нет? Если нет, то всё понятно. Если да, то, возможно, товарищ установил самый-самый последний Python, под который ещё не запилили каких-то библиотек, и pip install, вместо установки бинарника, пытается собрать из сорцов. В таком случае надо попробовать либо задаунгрейдить Python, либо найти бинарную библиотеку под установленную версию где-нибудь тут. (UPD: впрочем, там последнее обновление было почти год назад, так что по-любому Питон даунгрейдить.)


        1. xenon Автор
          00.00.0000 00:00

          Да, чистый питон. зависимости есть, но они тоже питоновские. Он разве что nude.py использует из "странного". Не знаю, как он реализован.


          1. SquareRootOfZero
            00.00.0000 00:00

            Так у nude.py в зависимостях Cython — он, вроде, нативные библиотеки собирает из питоновских, ему и надо, небось.


      1. muhamuha
        00.00.0000 00:00


        1. xenon Автор
          00.00.0000 00:00

          Я в вопросе установки на винде, вряд ли могу помочь. Как вариант - запустить в виртуалке (под VirtualBox) "честный" linux. Или под Docker - вроде он под виндой работает. nudecrawler в докере точно запустится.

          Еще есть вариант, но более трудоемкий, форкнуть репозиторий, убрать из него (из setup.py и из remoteimage.py) - это всего 3 строчки, собрать свой урезанный пакет и его поставить. Но тогда все равно придется что-то придумывать для фильтрации. NudeNet ставить например или что-то свое прицепить.


  1. sepulkary
    00.00.0000 00:00
    +2

    До публикации, у ползуна было 4 звезды (я вообще нигде не упоминал, просто магия сисек приводила к нему людей). Не прошло и суток, сейчас у ползуна 45 звезд!

    Всю годноту на GitHub стоит тащить на reddit. У моей репы https://github.com/amaargiru/pyroad (roadmap Python-разработчика) даже после публикации на Хабре было ~15 звёзд, после публикации на Reddit (https://www.reddit.com/r/Python/comments/z3gntf/detailed_python_developer_roadmap/) - 150. Сейчас, спустя 4 месяца, уже > 250, потому что люди с Reddit тянутся практически бесконечно.


    1. xenon Автор
      00.00.0000 00:00

      А можете посоветовать сабреддит, куда можно анонс nudecrawler сделать?


      1. sepulkary
        00.00.0000 00:00

        В r/Python, конечно. У вас же у этой статьи стоит тег "Python", недовольных, кажется, нет :)

        Там еще и пользователи в комментариях посоветуют, куда еще запостить, и сами разнесут благую весть по другим сабреддитам.


  1. Dimaasik
    00.00.0000 00:00
    +4

    Возьму эту статью за основу своей курсовой))


    1. xenon Автор
      00.00.0000 00:00

      Можно, например, сделать поисковик для находок, или совместную обработку (но с кросс-проверкой). Поисковики для телеграфа есть, но они только по тексту, без фото-видео и тем более без классификации фото.


  1. xenon Автор
    00.00.0000 00:00

    Последняя на сейчас версия 0.2.3

    Сильно ускорена обработка повторных страниц:

    • Есть кэш картинок по URL и по SHA1 суммам. (нам не приходится повторно выполнять медленную обработку картинок, если мы раньше ее видели)

    • Страница перематывается если она совпадает сразу по имени, дате и Content-Length с предыдущей. Это решает проблему, когда одна и та же страничка со множеством картинок повторяется несколько тысяч раз (Да, такое бывает. И даже с кэшем это долго. "Перемотка" - кораздо быстрее. Там где прежняя версия могла работать неделю, последняя за 10 минут эту западню обходит ).


  1. vvzvlad
    00.00.0000 00:00

    А как можно поставить без nudepy? Он что-то не хочет собираться на m1: skin_classifier.c:196:12: fatal error: 'longintrepr.h' file not found


    1. xenon Автор
      00.00.0000 00:00

      форкнуть репозиторий на гитхабе себе, и вырезать его упоминания (он там очень слабо привязан, всего в двух файлах по строчке-двум - setup.py и remoteimage.py). Затем, можно даже не устанавливать nudecrawler, а прямо из репозитория его запускать. Только сначала сделать:

      export PYTHONPATH=.
      export PATH=./bin:$PATH

      А запускать через python bin/nudecrawler

      (хотя не знаю, на винде как это будет).


  1. RadicalDreamer
    00.00.0000 00:00
    +1

    Библиотека tensorflow падала с "Illegal instruction" на моем древнем Xeon E5620, пересобрал из исходников и все заработало. На что только не пойдешь ради сись науки, конечно же.


  1. vvzvlad
    00.00.0000 00:00

    https://telegra.ph/anya-03-27
    О, false-positive нашел


    1. xenon Автор
      00.00.0000 00:00

      Сравнил через (с разными детекторами)

      bin/nudecrawler --url1 https://telegra.ph/anya-03-27

      nudepy (дефолт) видит 3 голых картинки, nsfw-api только одну (вариация на тему группового glory hole).

      А я глазами почти в каждой вижу пред-эротическую ситуацию.

      Но после множества однотипных сливов моделей, такая эротика даже радует глаз! :-)


    1. xenon Автор
      00.00.0000 00:00

      каким путем, кстати, запустили nudecrawler? на MacOS, Windows?


      1. vvzvlad
        00.00.0000 00:00

        На макоси, скачал с гитхаба и сделал python3.9 ./bin/nudecrawler. Пакет так и не удалось победить.


        1. xenon Автор
          00.00.0000 00:00

          А nudepy вырезали из него? (там несколько строчек) или поставили как-то?


          1. vvzvlad
            00.00.0000 00:00

            А выше писал ж: в последней версии питона там что-то хочет собраться и крашится, если взять 3.9/3.10, то все норм. Вот я так и сделал: "python3.9 -m pip install --user git+https://github.com/yaroslaff/nudecrawler", и он успешно все зависимости поставил, включая nudepy с его бинарниками.