Как выбрать фильм используя силу компуктера?
TLDR
Данные с сайта с фильмами REZKA, украдены, отфильтрованы, завернуты в телеграм и поданы в виде 3 фильмов в день случайным образом, рейтинг фильмов немножко перевернут, так как между 9.8 и 9.9 разница по сути в 2 раза ссылка на результат https://t.me/django_watch
Часть 0
Не знаю что посмотреть, а рейтинг IMDB уже надоел
Часть 1 – обнаружение проблемы
Вы тоже замечали что кинокритики часто недооценивают фильмы?
К примеру «Святые из Бундока» -
Фильм в основном получил негативные отзывы от критиков, получил 44 балла из 100 на сайте Metacritic
Зато народу нравится, и таких примеров много – тысячи их
Короче есть в интернете такой сайт как HDrezka, годный сайт – много фильмов, своя студия озвучки, куча зеркал и регистрация в аргентинской бухте прямо таки стандарт среди пиратов
При посещении данного сайта, можно заметить один интересный феномен, его рейтинг фильмов очень точный, ибо:
- Его ставят люди которые действительно смотрят это кино
- Сайт резка не настолько популярен (как ротен томатос или метакритик) и крупным студиям и маркетологам и в голову не приходит – накручивать рейтинг на резке
- Сайт достаточно крупный (крупнейший из пиратских) что бы там было огромное количество фильмов (как выяснилось больше 30-ти тысяч)
- И самое главное – по этому рейтингу нельзя отсортировать фильмы что исключает внесение искажений
+ Не возможность отсортировать и самому выбрать действительно годные фильмы – что и стало причиной дальнейших действий
(дракон со златом охраняет рейтинг резки)
Часть 2 Как «стырить» данные?
И так навыки персонажа которому все это пришло в голову:
- Понимание школьной математики
- Программирование на уровне хобби, из языков знает немного знает Python (но без всяких сложных штук типа миксинов/дескрипторов)
Первым делом стал исследование какие технологии «воровства» данных изобрело человечество
После недолгих поисков было обнаружено 3 основные технологии
- Selenium (что то вроде эмулятора браузера)
- BeautifulSoup (легковесная библиотечка для работы с HTML – ты ей текст – а она тебе облегчает поиск всяких штук в этом тексте)
- Scrapy (целый фреймворк, хоть я до сих пор и не понимаю это слово, но это как большая библиотека, настолько большая что когда ней пользуешься ты ей даешь команды – а она создает целый проект с кучей файлов и папок, всякими настройками), по ходу именно такими технологии пользуются в промышленном программировании всякие компании
Короче после недолгих раздумий решил попробовать использовать Scrapy
От Selenium отказался ибо он используется для сложных сайтов типа amazon linkedin, а у нас тут сайт очень простой
Ну и BeautifulSoup решил использовать в случае если какие то куски странички будут слишком неудобно парсить с помощью Scrapy
И так, закатываем рукава, едем в бой:
Часть 3 – учим Scrapy и воруем
Первым делом находим видео с объяснениями как им пользоваться (желательно что бы объяснял Индус – у них каким то магическим образом все влезает в 5 минут видео)
Может тоже кому надо будет –
– четко объясняет и быстро+ на Хинглише :)
И так после нескольких часов получилось накидать несложный код что тырит интересующие нас данные, используя удобный инструмент что нам подсказал человек из Индии
Далее становится интересной секция «комментарии» - ведь некоторые шедевры народного искусства явно стоят того что бы их прочесть
Почитав исходный HTML оказалось что в нем нет комментариев
Хмм, возник вопрос как так, после небольшого чтения мануалов, оказалось что данные иногда находятся не в самом коде страницы, а подгружаются «динамически» используя javascript
Мда, плохи дела подумал я, еще с джаваскриптом разбираться, а судя по мемам, ждет меня увлекательное приключение
Но не так страшен черт как его малюют
Оказалось что нужно лишь отследить куда именно идет запрос на очередную пачку комментариев
Оказалось что у браузеров есть супер крутые инструменты разработчика (сколько же всего придумало человечество)
Там нужно нажать на вкладку Networking, далее отключить кеш что бы запросы заново шли каждый раз а не доставались из памяти браузера
Потом вкладка XHR что расшифровывается как XMLHttpRequest – короче тут отслеживаются все запросы что делает страничка куда то
Далее нажимая на запрос – видим куда он делается :
А перейдя на вкладку Response можно увидеть что ответил сервер
После не долгого ковыряния в полученом ответе оказалось что это JSON специальный такой формат данных для общения между сервером и браузером
Если еще проще то это просто текст, слегка отформатированный что бы его компу было легче читать
Почитав еще оказалось что этим JSONом возращается HTML то есть не сам текст комментариев, а сразу целые странички с древовидной структурой
Чисто с эстетической точки зрения конечно как то странно выглядит, но чисто с практической работает же – да и сервер наверное не сильно грузит, так что все окей
Тут нам и пригодится вторая библиотечка – BeautifulSoup – мы ей скормим HTML достаный из JSON а она нам вернет комментарии
Так и произшло, никаких эксцесов не возникло (что удивительно)
Разве что пришлось почитать немного туториалов как этим всем пользоваться
После небольших настроек, с VPN через Японию, что бы не забанили наш основной IP с которого мы смотрим пиратские фильмы
А так же прикрутки модуля модуля к Scrapy что генерирует фейковые личности (юзер агенты) для каждого запроса
Далее запускаем процесс «воровства» и ждем
72 часа спустя, процесс завершается, мы счастливы!
На выходе получается файл
Если 1 байт это 1 символ – то достаточно много данных
Если человек может читать примерно 1000 символов в минуту, то все это на неделю где то на неделю беспрерывного чтения
Выглядит все это как то так
Часть 4 – присобачиваем интерфейс к этим всем данным
Логичным решением было использовать телеграм, так как он позволяет хранить фото/видео/текст не на локальном компьютере, как пришлось бы делать в случае с сайтом, а в собственном облаке, что очень удобно
+ не нужно покупать доменное имя (адресс сайта), а просто ник в телеге
+ не нужно платить провайдеру что бы он удерживал у меня белый IP – который не менялся бы каждый день, что бы специальная служба DNS (превращает имя сайта в IP и наоборот) работала корректно
+ не надо парится за безопасность (если кого это интересует) ибо перед тем как взломать условно мой бот, нужно сначала взломать телеграм, а это сложно
Имя канала решил выбрать в честь моего любимого персонажа – Джанго освобожденного, который спасал свою любимую из лап злодея
В загашнике валяется Raspberry PI 4
Это такой по сути полноценный компьютер на Linux с 4 Гб оперативки, разве что без вентилятора и не гудит, немножко греется когда что то сложное делает
Пишем небольшой бот, прикручиваем к нему базу данных что бы он как то аккуратно хранил список фильмов что уже запостил, а так же те которые планирует постить, немножко причесываем вывод информации
Охапку дров и бот готов :)
В общем кто дочитал до конца – СПАСИБО!
Хотелось с кем-то поделится!
Вот ссылка на канал, может быть вам тоже понравится, и сможете выбрать что посмотреть в свободное время
Подробнее
Pfthon Strap* Tutorial-1 - Web Scraputg. Spid*n and Creating mwvtowm Пихт rmMiw ^i4rwe çj ► ■duiUiKPuXnwH—imtKncmttn . -«at Вы подписаны £i
Джон Уик John Wick КИАНУ РИВЗ Д1Я ни га — "V СТАРЦЕ It Я Е Т ф Смотреть трейлер Рейтинги: Слоган: Дата выхода: Страна: Режиссер: Жанр: В качестве: В переводе: 1МРЬ: 7.4 (618 691) Киноооиск 6.95 (390 690) «Его лучше не трогать» 19 сентября 2014 года США чад Стахелски. Дэвид Литч Боейшаз. Триллеры. ЗаруОежные 720р Дубляж. Одноголосый закадровый. Гоблин. Гаврилов. Живов. Матвеев. Есарев, Володарский. Украинский дубляж и Оригинал (-»субтитры) 16+ для более зрелых и понимающих 101 мин Фильмы про киллеров. Фильмы про месть КиануРи« Микаэл Нюквист. Алфи Аллен. Возраст: Время: Из серии: В ролях актеры: Уиллем Дефо. Дин Уинтерс Эдрианн Палики Омер Барнеа Тоби Леонард Мур, Дэниэл Бернхард Бриджет мойнэхэн и другие .tooltipstered span dear (12) Toggle Position XPath ? X
Влад Ива оставлен 25 июня 2021 03 16 # Пусть и сказка, но очень поучительная. Мне нравится. Ответить й Поддерживаю! Мг.ОгасЛег. оставлен 28 июня 2021 16 54 # и что же ты научился? Не красть тачку Джона Уика и не убивать его пса?)) Ответить «¿(6) Mikael, оставлен 5 июля 2021 23 20 # Даже Танос боялся что бы шелчёк не убил собачку Джона Уика )) Ответить <5(12)
ошибки от ошибки от Python C++ JTV\\.XV
0 Do + f ^ С ■ г*Алл? Man « Л.Чко* > **штж* И фильм о?гм*мьМ я мрс* в *с*це с грав«ч*ьм Салакаг ГМиумми 1224 • > что со жухом? Ду<3гажОу-дю WW ю pvmoac^cw гос и*ткм то тквогрошо $?•!!■* <6 ПМ№»** е» (1) АД1М^ст(к*«и1 ос*м~. Я «•<»• Ж1 •>»• yuweif аслме»#** отрем* проаерам 0*«ptptv MW.i J *a* Ж1 t| 17 Ш > Дело • иг ил*** я грошости • • мо*о и стерео ка гротяп**«м асего фмяьма оергээд <Х©Ое**о ааметн© в момент* перескочен«» с мыеиа в «горем не Оыго рее«*«. * диалогам Диа/хх* Оудто уремм* в мо«о ют ocprv же не асе ю грочеитое 80 Снсн реже? слух Отмтнтъ ф пшлс«««« «•*я.п**иягт»1 > Там ооре* дело не а громкости, а а км. что «иуд» жуй**« дорема « стерло греорлцется а мою (ти*«о * миги* дм таохх момента) <5 шсож« * Уарсус дале« от уСМа лги гаобятсга оруах» осмСви акдо сразу - вмл вмгтсвву *■ грмапт. пслоамл на эатаор разОсрха и чисти сруя*я палмчоамя а ие р»ими Жатое « * V а х ^ о • * □ X 5 О Ofvfcohiiwe I г--4.Ъ О*«-* % 0*"1 *»»• «9«и :« ¿] Сотом Wn Мс--сл *ахют« •? Р1 о : X • О V Q. О ******ю* О cw**<*v Ho«voeaA9 • % t ± О ГЛг- о Ь«*Ч О M4*d*aUfK« Al frtthOO« Я CSS М9 UMa 1« Ox W. Кии MWM 09w Им beefed coctm О 1<жЫ О 3*0 party га<**ч»» hv* rt.K>em4T»WA7v_ 200 л s-f* Тот iMkf ХМ я ч * I ¿4«**«* 1Ма/Шк*Тг^Л-^ 20* kf / Л5 к* тот* : СОТОМ *ЧГ*Чг* - Ьом tm 0*«от W* «*"*** Sto* repity ©рею*» *> the ReccrOe# Raplty uter f»o*% at a dew* трееО **h «he ) near Uo* rvptty cptem. New Ihee T тгф track л the PnVimkY# maVilt гипЯ ► new
All Fetch/XHR JS CSS Img Media Font Doc WS Wasm Manifest Other O Has blocked cookies Q Blocked Requests U 3rd-party requests 200 ms 400 ms 600 ms 800 ms 1000 ms Name x Headers Payload Preview Response Initiator Timing » □ ?t=1661536191490&news_id... ▼ General Request URL: https: //rezka. ag/ajax/get_comments/ ?t=166153619 1490&news_id=8174&cstart=3&type=0&comment_id=0&skin=hdrezk a Request Method: GET Status Code: • 200 OK 1/24 requests 17.1 kB / 82.8 kB < " * .............| Mi >
All Fetch/XHR JS CSS Img Media Font Doc WS Wasm Manifest Other O Has blocked cookies O Blocked Requests O 3rd-party requests 200 ms 400 ms 600 ms 800 ms 1000 ms | Name x Headers Payload Preview Response Initiator Timing » □ ?t= 1661536191490&news_id... 1 ({“navigation":"<!--noindex-->\r\n<div class*\"b-navigati< - <
rezka_csv.xlsx Лист Microsoft Excel (jdsx) fjj Excel : D:\User\Desktop 7.83 MB (8 213 583 байт) 7.83 МБ (8 216 576 байт)
|»Y3 • Я|ГА»>’^
ßROADCOM« 2711ZPKFSB06BOT TE1903 6863-0'*! 83 W DISPLAY BCK54213PE B1KM16 TAl908 P2l 00V-35 1 * POWER IN CAMERA
£ Т1к Ток X (¿диеххИжлю^О 9 Джеки чаи на минималках® Миссия невыполнима: Протокол Фантом Рейтинг от Джанго: 20 ^ 7 декабря #2011 года #201 Об #Боевики #Приключения #Триллеры #3арубежные В ролях: #Том_Круз #Пола_Пэттон #Саймон_Пегг #Джереми_Реннер Режиссер: #Брэд_Бёрд как вам такой полёт? протокол витом ‘О- ^ Ц взрывают кремль? щас посмотрим) ссылка на фильм
Django - смотрит КИНО *»ГМ НЕСПЯЩИЕ - Что? Собираюсь просыпаться I ( II .) М .1 I. __ каждое утро. Неспящие в Сиэттле Рейтинг от Джанго: 19 ^ 25 июня #1993года #1 990б #Драмы #Мелодрамы #Комедии #3арубежные В ролях: #Том_Хэнкс #Мег_Райан #Росс_Мэлинджер #Рита_Уилсон Режиссер: #Нора_Эфрон Прекрасное кино. И не верьте комментариям: романтика никуда не делась, это просто может быть вы от неё бежите. А она есть, надо только протянуть руку:) ссылка на фильм КАНАЛ ХОРОШЕГО КИНО 0 23 12:35
Python Scrapy Tutorial- 1 - Web Scraping, Spiders and Crawling,People & Blogs,web scraping,scrapy,python,scraping,python web scraping tutorial,beginner,python projects,web scrapping,web crawler,tutorial,In this video we understand the terms python web scraping, spiders and web crawling. We also see an example of amazon being scraped using scrapy. Next video - How does web scraping work? https://youtu.be/wYJAtx4HL6U Full playlist - https://www.youtube.com/playlist?list=PLhTjy8cBISEqkN-5Ku_kXG4QW33sxQo0t Subscribe - https://www.youtube.com/channel/UCirPbvoHzD78Lnyll6YYUpg?sub_confirmation=1 Website - www.buildwithpython.com Instagram - http://instagram.com/buildwithpython #python
сделал сам,нарисовал сам, сфоткал сам, написал сам, придумал сам, перевел сам,длинный пост,Фильмы,подборка
А рейтинг критиков... кто блядь вообще смотрит рейтинги критиков?
https://www.wired.co.uk/article/which-film-ranking-site-should-i-trust-rotten-tomatoes-imdb-metacritic
А их часто покупают, например все новые фильмы выходят с завышенным рейтингом, для увеличения продаж
если честно от тебя первый раз услышал что такое вообще существует - так что спасибо!)
Так что там ты имеешь все шансы наткнуться на кино, которое больше нигде и никогда ты бы не увидел.
Да и говноедов среди зрителей тоже полно.
Например народным голосованием на Оскаре приз зрительских симпатий получил фильм "Армия мертвецов". Но как по мне - это просто невероятно убогое бездарное говнище.
А народу вон нравится.
Я вообще думаю что единственный нормальный судья - это время
Если прошло время а фильм до сих пор смотрят - значит он того стоит
а что бы сайт нужно адрес покупать
и за белый ip платить / или хостинг - а это ежемесячно
так что вариант с бесплатным был только в телеге, ну может еще можно бот дискорда присобачить, но это уже как то совсем стремно
Приходится в ручную для каждого фильма просматривать и оставлять топовые
И выдает фильм с постером, коротким видео, и комментарием что другие люди сочли хорошим
https://github.com/clemfromspace/scrapy-selenium
а браузер можно в докере поднять, точнее ферму браузеров
https://github.com/jobman/film_posting_bot/blob/master/rezka.csv
или вот на гугл диск:
https://drive.google.com/file/d/13bnLdoGPhqXOBOgif4FN_qrmSgRNSLei/view?usp=sharing