Сообщество - ИТ-проекты пикабушников

ИТ-проекты пикабушников

443 поста 3 321 подписчик

Популярные теги в сообществе:

Тройное комбо в области парсинга данных, или как мы сделали кроулер сайтов на основе ИИ, двух тысяч прокси и Chrome API

Тройное комбо в области парсинга данных, или как мы сделали кроулер сайтов на основе ИИ, двух тысяч прокси и Chrome API Машинное обучение, Искусственный интеллект, Веб-разработка, Длиннопост

Занимаемся разработкой. Задача стояла следующая: собрать данные с израильской доски объявлений, которая блокирует на входе все страны кроме Израиля и некоторых европейских (исключая Россию). Далее блокирует всех, кто ведёт себя хотя бы сколько-нибудь подозрительно. Например, при запросе страницы сайта чаще 1 раза в 3 секунды уже есть возможность попасть в бан-лист. Далее, чтобы узнать номер телефона автора объявления (без которого все остальные бесполезны) нужно пройти капчу на иврите (местный язык). Т.е. доступную только евреям. Иными словами, создатели сайта явно против того, чтобы их парсили. Но мы решили попробовать.


Сначала сделали полуавтоматический режим. Написали расширение для Google Chrome, которое парсило страничку объявления после прохождения капчи человеком. По ходу дела пришлось подучить иврит. Посадили человека собирать данные. Через пару часов выясняется, что сайт заблокировал нашего человека. Как в итоге выяснилось, по IP, из-за слишком частого перехода по страницам. Поставили ему VPN с примерно 20-ю странами. Хватило на пару дней — сайт располагает удивительно мощным алгоритмом вычисления парсеров. Добавили в расширение Chrome очистку куков и кеша при каждом посещении. Сработало, но снова только на неделю. В отчаянии хотели было звонить заказчику и плакаться о том, что ничего не получится. Но решили попробовать кое-что ещё. И вот тут начинается самое интересное.


Ещё за полгода до этого меня заинтересовала тема ИИ и нейросетей. Написал даже простенький парсер изображений, который определял наличие человеческой физиономии на фотографии. И тут в голову пришла мысль — почему бы не использовать машинное зрение для прохождения капчи. На сайте, с которым мы боролись, капча не сложная. Больше узконаправленная на евреев, чем сложная. Было решено попробовать написать парсер для неё, однако перед этим нужно было решить вопрос блокировки по IP. VPN не подходит, как уже стало известно. Следующее, что пришло в голову — прокси. Долго мучились с с тем, чтобы найти список годных проксей. Бесплатные все не подходят — они фактически не работают. Стали пробовать платные. Картина не намного лучше, но всё же. Нашли в итоге русский сайт с более-менее рабочими серверами. Прикрутили их к cURL через API и написали сборщик данных на PHP. Поставили его на cron. Скрипт просто брал из 800 прокси случайный и пробовал собрать через него данные. Если без результата — брал следующий и по кругу. Таким образом удавалось собирать все данные кроме номера телефона, который под капчей. Неделю парсер проработал без блокировок, что можно считать успехом. Дальше встал вопрос капчи.


При написании парсера изображений я пользовался гугловской библиотекой TensorFlow. На её основе была построена и обучена нейросеть на питоне, которая определяла цифры на картинке, изображенные рукописным шрифтом на иврите. Заняла разработка сей вещи столько времени, денег и нервов, что заказчик до сих пор вспоминает это со слезами. Однако в итоге парсер верно читал капчу примерно в 7 случаях из 10, чего вполне достаточно для прохождения. Дальше встал новый вопрос: как брать изображение капчи у сайта через cURL, если капча асинхронная, а cURL не умеет выполнять скрипты?


Здесь мы вспомнили про созданное ранее расширение для Google Chrome. С его помощью был выработан примерно следующий алгоритм: cURL собирает все данные кроме номера телефона, далее передаёт управление в постоянно работающее браузерное расширение (да, костыль, но на тот момент было самым быстрым решением), там вычисляется изображение капчи, отдаётся на сервер в нейросеть, считывается и возвращается в расширение, где в итоге открывается и сохраняется номер телефона в базу. Всё.


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

Показать полностью

Telegram-бот с текстовыми трансляциями футбольных матчей

Всем привет. Меня зовут Евгений и я люблю футбол. Но смотреть матчи в прямом эфире, а к тому же в видео формате не всегда есть возможность. Скажете, что есть куча сайтов и приложений с трансляциями на любой вкус и на любой кошелек? Куча пабликов в соцсетях? Это все безусловно так.


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


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


Что бот умеет и делает на данный момент?


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


Подписка на трансляцию - если сегодня есть матчи то вы можете подписаться на трансляцию любого из них и в неограниченном количестве. Бот оповестит вас о матче за полчаса до начала.


Во время трансляции - бот присылает стартовые составы, текстовые комментарии по ходу матча, видео голов, обзоры матча, статистику после матча.


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


К сожалению на данном этапе присутствуют и минусы. Бот реализован на английском языке. И доступны трансляции только английской премьер лиги.


Ближайшие планы по развитию бота:

- Повысить стабильность

- Вывод турнирных таблиц, таблиц бомбардиров и т.д.

- Визуальное оформление (при заменах/удалении/карточках показывать фото игроков и т.д.

- Ввод русского языка

- Постепенный ввод новых чемпионатов других стран

- Продвижение проекта


Бот запущен публично 3 месяца и на данный момент имеет 40 пользователей. Активны меньше половины.


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


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


Всем спасибо за потраченное время и интерес к посту.

Показать полностью

Генератор Валентинок

Генератор Валентинок 14 февраля - День святого Валентина, Генератор, Валентинка

Вы не поверите, но я создал сайт, от которого в трусах у девушек такой водопад, который вы даже представить не могли. Этот сайт подходит всем мужикам на планете, нету денег? не беда, ведь это абсолютно бесплатно. Нету девушки? Не вопрос, ведь после того, как ты используешь мой сайт, тебе придется выбирать из десятков подруг, которые захотят оседлать тебя во всех позах камасутры. В общем если вы заинтересовались и хотите посмотреть на мою штуку проходите по ссылке: http://day-valentine.ru/


Ну а если серьезно, на выходных запилил сайт валентинку для девушки.
Ну и решил поделиться, вдруг кому пригодится.
Дизайн такой себе, но я и не дизайнер.

Да и кодить я не мастер.

Не успел прикрутить сертификат к домену еще делается, а то многих смущает отсутствие https, если успеет сделаться то присобачу, а после думаю уже не актуально будет.


В общем кто зажал деньги на валентинку пользуйтесь и всех с праздником))))

Показать полностью 1

Фильтр неинтересных постов

Всем привет.

Хочу рассказать о своём небольшом скрипте, который вырос и стал почти полноценным сервисом.


Пару лет назад, я написал для себя небольшой скрипт который удалял посты из ленты ВК по ключевым словам. Добавляешь слово в словарь и если оно встречалось в посте – то пост исчезал. Просто вырезал из ленты, как будто его и не было. Отписываться от групп не хотелось, потому что подавляющее количество постов было норм. Но со временем, рекламных и различных репостов стало очень много, особенно по тематическим пабликам и группам. Поэтому сделал такой велосипед.


Позже добавил поддержку Фейсбука и Твиттера, по такому же принципу. Ещё стал фильтровать выдачу в Яндексе, Гугле и Бинге. Сначала была идея к запросу добавлять минус-слова, но это работало как-то через раз, особенно, если в словаре было много слов. Ну и в конце, вообще стал вырезать «неинтересные блоки» с любого сайта. Бонусом: удалял некоторую рекламу. Хотя AdBlock у меня тоже был. Ну и как-то всё это заработало и очистило мой браузер от всего мне ненужного. Так появилось расширение для браузера Riddut. Как оборонительный, только от информационного шума. AdBlock для контента.

Фильтр неинтересных постов Расширение, Блокировка рекламы, Блокировка, Фильтр, Длиннопост

Запилил бекенд, добавил поддержку морфологии, чтобы когда добавлял слово, автоматически добавлялись все его формы. Словарь не очень актуальный, но норм, пока сойдет. Сделал лендинг, запустил, что-то где-то запостил и рассказал. Набрал около 1000 пользователей, кто-то даже писал письма с благодарностями. Потом правда по независящим от меня причинам, я забросил развитие. Но сейчас воскресил и обновил. Приглашаю пользоваться.


Что умеет Riddut:

- удалять любое упоминание стоп-слова на любом сайте

- удалять посты и рекламу из соц. сетей Фейсбук, ВКонтакте, Одноклассники, Твиттер по ключевым словам

- удалять позиции в выдаче и рекламу поисковых систем Яндекс, Гугл, Бинг

- фильтровать дозагруженный контент

- работать с белыми списками сайтов

- понимать русскую и английскую морфологию (не полностью)

- синхронизироваться между браузерами

- показывать красивую статистику «сэкономленного» времени :_)


Результат работы выглядит примерно так:

Фильтр неинтересных постов Расширение, Блокировка рекламы, Блокировка, Фильтр, Длиннопост

Есть версии для Chrome, Safari и Opera. С Firefox пока не разобрался в чём проблема, но думаю решу.


https://riddut.mopsicus.ru

Показать полностью 2

Стол Находки: обновления на сайте

Приветствую IT-специалистов сообщества и читателей записи.

Вкратце напомню, что сайт объявлений под названием «Стол Находки», связанный с поиском и возвратом утерянных и забытых вещей, документов и животных, работает с 2009 года, за прошедшее с тех пор время его интерфейс и функционал неоднократно и существенно изменялись. Сегодня вкратце упомяну о тех изменениях, которые внедрены на сайте в январе 2018 года.


Во-первых, кнопки для репоста в любой из четырёх социальных сетей: Google+, Twitter, Facebook и Вконтакте. Уже сто лет в обед как едва ли не любая страница в интернете снабжена такими кнопками, и только теперь всего лишь четыре из них появились в объявлениях на «Столе Находки». Из чего следует вывод: лучше поздно, чем никогда.


Во-вторых, на сайт вернулась возможность добавлять фотографии в объявления. До пяти штук максимум. Подгружаются посредством AJAX, то есть без перезагрузки страницы.

Стол Находки: обновления на сайте Стол находки, Обновление, Длиннопост

На скриншоте выше рядом со словами «открытый номер телефона» можно увидеть ссылку с якорем «показать» — и да, тоже AJAX. Чтобы номер телефона не индексировался поисковыми системами и в конечном итоге с меньшей долей вероятности попадал к тем, для кого совершенно не предназначен. Пока отображается текстом, в дальнейшем же, вероятно, изменится на графический файл с номером телефона. Всё из тех же соображений. Вдогонку: сам номер телефона стал обязательным, без него невозможно опубликовать объявление. Вводится больше ни разу не в свободной форме, но лишь исключительно по маске вида +7 (000) 000-00-00 (что, кстати, стало серьёзным препятствием для авторов объявлений из Белоруссии, где маска телефона несколько иная, но в ближайшие дни планируется поправить недоразумение).


Ещё немаловажный момент: объявления с фотографиями выделяются в ленте объявлений жёлтым цветом и сопровождаются миниатюрой первой из загруженных фотографий.

Стол Находки: обновления на сайте Стол находки, Обновление, Длиннопост

Отправка сообщений авторам объявлений через форму обратной связи покамест отключена: статистика показала, что эта форма в 90% случаев использовалась мошенниками и спамерами. Как только будет готово противоядие (сейчас в стадии разработки) — форма вернётся на своё место.


Далее, выпилена (или, проще говоря, умножена на ноль) мобильная версия сайта в связи с тем, что основная версия более не имеет нареканий по совместимости с мобильными устройствами со стороны поисковых систем.


Терминатус наступил и для бокового меню сайта: аналитика показала, что им практически не пользуются, при том что под него была отведена широченная левая колонка. Сейчас на главной странице присутствуют лишь список наиболее популярных населённых пунктов, список категорий найденного/утерянного (с дополнительной разбивкой по тому и другому для каждой из категорий) и лента объявлений с постраничным показом. Далее всё это пойдёт в доработку по результатам аналитики.


Ну и последнее: автором сейчас ведётся активная работа по налаживанию контактов с проектами и социальными группами аналогичного профиля, чтобы повысить вероятность нахождения или возврата «потеряшек» (что означает на жаргоне — утерянные и забытые вещи, животные и документы), а также расширить географию проекта (на данный момент это на 95% объявления по РФ, практически отсутствуют Белоруссия и другие страны СНГ).


Если чего забыл, сильно по печени не пинайте — чукча не столько писатель, сколько программист-разработчик.

Показать полностью 2

Решение проблемы с кучей подписок на YouTube

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

Решение проблемы с кучей подписок на YouTube Проект, Расширение, YouTube, Длиннопост

После запуска появляется окно, где можно принудительно обновить список каналов с ютуба(он обновляется автоматически раз в минуту).

Решение проблемы с кучей подписок на YouTube Проект, Расширение, YouTube, Длиннопост

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

Решение проблемы с кучей подписок на YouTube Проект, Расширение, YouTube, Длиннопост

Также можно наоборот перетаскивать каналы в теги

Решение проблемы с кучей подписок на YouTube Проект, Расширение, YouTube, Длиннопост

Установить в Firefox можно тут https://addons.mozilla.org/en-US/firefox/addon/tagyoutubechannels/


В хроме также работает, но они хотят 5 баксов за возможность публиковать расширения, а я нищий студент :(


P.S. Кстати, проект с открытым исходным кодом: https://github.com/DevAlone/TagYoutubeChannels

Показать полностью 3

Набор инструментов от МедиаПандоры

Набор инструментов от МедиаПандоры Онлайн, Онлайн-сервис, Инструменты, Длиннопост

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


1. Мешалка слов в тексте. Один из самых простых в техническом отношении инструментов, но тем не менее (неожиданно для меня самого) один из самых популярных. Секрет, насколько мне удалось уяснить из отзывов, заключается в том, что с помощью этого инструмента чужой текст лёгким нажатием кнопки превращается в изящные шорты свой собственный и абсолютно уникальный. Ещё им перемешивают хештеги и многое другое. Опции — выбор одного из трёх видов разделителя (пробел, точка или запятая), а также удаление разделителя и дублей слов в тексте. С какой целью создавался изначально, уже не помню.


2. Сортировщик слов. Сортирует по алфавиту список слов, указанных через пробел. Опции — добавление нумерации перед каждым словом, добавление простенькой статистики в конце сортированного списка, удаление дублей. Инструмент создавался для своих служебных надобностей: для разработчика даже просто сортировать списки в MS Excel, а тем более спалиться на этом занятии в коллективе — несмываемый позор.


3. Генератор случайных паролей. Особых комментариев, полагаю, не требуется, но тем не менее: пароли генерируются случайным образом, не сохраняются ни в каких базах, и соответственно растворяются сразу же после закрытия страницы с результатом работы инструмента. Как говорится, от греха подальше. Опции: длина пароля (от 3 до 64 символов), регистр символов (строчный, прописной или смешанный), наличие цифр в пароле (нужно, не нужно, по барабану). Естественно, только цифры и латинница. Создан после очередного сеанса общения в форме регистрации с ботом защиты пользователей от низкого уровня защиты.

Набор инструментов от МедиаПандоры Онлайн, Онлайн-сервис, Инструменты, Длиннопост

4. Генерация интернет-мемов. В отличие от большинства подобных сервисов, мой основан на некоем количестве предварительно загруженных мной в галерею кадров из фильмов — свою картинку загрузить нет возможности, — и это выдаёт в нём предназначение для использования в первую очередь самим разработчиком. С другой стороны, надписи всё же можно указывать свои. Шрифт надписей — Lobster.

Набор инструментов от МедиаПандоры Онлайн, Онлайн-сервис, Инструменты, Длиннопост

5. Генератор диаграмм. Указываем до 10 числовых значений, снабжаем каждое коротким текстовым комментарием и получаем диск с дольками, соответствующими процентному соотношению каждого из значений. Быстрый и простой способ сформировать круговую диаграмму без использования инструмента MS Shit&Trash. Автору позволяет время от времени наглядно убеждать руководство в преимуществе тех или иных решений, в зависимости от статистики, с каковой целью и создан. Отличительные особенности — капча, или тест Тьюринга, только здесь он предназначен не для защиты от роботов, а является фактически одним из рабочих элементов онлайн-сервиса.

Набор инструментов от МедиаПандоры Онлайн, Онлайн-сервис, Инструменты, Длиннопост

6. Преобразователь микротайма в человечески-понятную дату. Преобразует количество секунд, прошедших с момента начала эпохи Unix, в обычную дату формата «01.01.1970 03:00». Едва ли не чаще других инструментов используется автором — особенно при просмотре баз данных, где даты имеются только в формате микротайма и не дублируются в ином формате, когда невозможно наподобие Сайфера из «Матрицы» на лету распознать число 1591561651 как 07.06.2020 23:27 и очень хочется не только расшифровать время, но и сэкономить его.


7. Маркировщик картинок водяным знаком. Снабжает загруженную картинку полупрозрачным водяным знаком в виде короткого текста. Разрешение изображений максимум 1200 х 900 пикселов, формат на входе и выходе — только JPG, текст водяного знака — до 15 символов, выбор из 12 кириллических шрифтов. Настройки прозрачности, размещения, цвета и размера водяного знака отсутствуют (до поры до времени). Полупрозрачный водяной знак белого цвета автоматически размещается в левом нижнем углу загруженного изображения с небольшим отступом (порядка 15 пикселов). Исходные изображения на сервере не сохраняются (и тем более не используются), обработанные — сохраняются на протяжении от нескольких часов до суток, чтобы можно было скачать самому или отправить ссылку кому-нибудь другому. Цель создания сервиса вполне очевидная: защита изображений от несанкционированного использования. Слегка схоже с созданием мемов из п. 4, разница — полупрозрачность текста, возможность загрузки любого своего изображения и сохранение оригинального разрешения (а также возврат обработанной картинки с минимальной степенью сжатия, тогда как в мемах результат жмётся ориентировочно на 25% с целью оптимизации трафика для владельцев мобильных устройств).

Набор инструментов от МедиаПандоры Онлайн, Онлайн-сервис, Инструменты, Длиннопост

P. S. Баянометр вполне предсказуемо и негромко (до 64% совпадения) ругался на Джека Торренса.

Показать полностью 5

Каждый год зимой происходят странности

Например, что-то пропадает. У одних важные вещи, у других новогоднее настроение. В этот раз — потерялись помощники Деда Мороза. Но есть хорошая новость: вы можете их найти! Вернее, помочь им найтись…

Сделали сами, старались, теперь надеемся на вашу критику и советы.

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

Мы будем вам очень признательны, если вы скачаете и попробуете разок другой прокатиться и спасти котят из лап злодея. А если еще и напишите нам здесь или на почту какие-нибудь свои рекомендации или покажете своим деткам и расскажете, какие у них были впечатления от игрушки, то мы внесем ваш ник в конечной версии игры в строку "благодарность"!

Спасибо большое за внимание, коммент для минусов прилагается.

https://play.google.com/store/apps/details?id=com.agame.ufoc...

Сделали сами, старались, теперь надеемся  на вашу критику и советы. Игры, Разработка, Gamedev, Стартап, Критика, Санкт-Петербург, Длиннопост
Сделали сами, старались, теперь надеемся  на вашу критику и советы. Игры, Разработка, Gamedev, Стартап, Критика, Санкт-Петербург, Длиннопост
Сделали сами, старались, теперь надеемся  на вашу критику и советы. Игры, Разработка, Gamedev, Стартап, Критика, Санкт-Петербург, Длиннопост
Показать полностью 3
Отличная работа, все прочитано!