А ты уже измерил свой ИКС?)
Для тех, кто 1-го сентября пошел в школу и из-за этого пропустил важнейшее SEO-событие года, сообщаю - Яндекс несколько дней назад заменил древний, как сами знаете что, тИЦ, на загадочный, на первый взгляд, ИКС, который оказался вполне понятной аббревиатурой от “Индекс Качества Сайта”.
Отличное название придумали, как по мне, во-первых, трендовое - в том году Apple презентовал свой iPhone X, Samsung в этом тоже какой-то X презентует, а, во-вторых, с двусмысленной юзабельностью - “какой у тебя ИКС” и все такое.
Смотреть ИКС можно так же, как и тИЦ, либо в Яндекс.Вебмастере, либо на кнопках-информерах, либо чекать по 1 штучке на самом Яндексе.
По 1 штучке это, конечно, весело, но не очень эффективно, поэтому вчера сел и набыдлокодил тулзу для массовой проверки ИКС.
В принципе, обязательная часть поста тут завершается, можно идти и пользоваться, а кому интересна вся история, читайте дальше)
Когда все было готово, сначала на локалке почекал несколько раз, все ок, нет бана по IP. Залил на хостинг, там пару раз что-то чекнул, тоже все ок, бана нет. Ну, думаю, Яндекс молодцы, не будут банить запросы ИКСа, с тИЦем же не банили и тут не стали, красавцы.
Так как время было уже позднее, решил не постить анонс в блог, мало ли, вдруг из-за наплыва тестеров вывалится тонна ошибок, а я уже закончу с работой и поэтому не смогу как-то оперативно среагировать, что нехорошо по отношению к юзерам, ведь ПФ наше все, как известно.
Сегодня включаю ноут, смотрю, а тонна ошибок от этого сервиса таки прилетела WTF, как, почему, откуда, анонса же не было?! Оказалось, что Яндекс взял вчера эту страницу в свой быстроиндекс, ну и на нее, соответственно, начали переходить с поиска заинтересованные люди, которые начали юзать сервис, и… Яндекс быстро забанил к херам IP-адрес, с которого сервис делал запросы, соответственно, все перестало работать, полетели тонны ошибок
Таким образом, написание радостного анонса пришлось отложить и потратить весь сегодняшний день на переделку сервиса с учетом постоянного бана ip Яндексом и последующего появления капчи для разбана. Решение гениально в своей простоте - просто введите чертову капчу и процесс пойдет дальше))
Если в будущем появится какой-то бескапчевый способ проверять ИКС, например API какой-то или костыль, как это было с тИЦем (можно было массово проверять тИЦ через сервер Яндекс.Бара), то я, разумеется, все переделаю. Ну, а пока и так неплохо, по-моему, все лучше, чем с информеров цифры вручную срисовывать, как сделано у некоторых аналогичных сервисов)
По идее обращение к счетчику не должен баниться, https://yandex.ru/cycounter?site.com Ну а там просто картинку распознавать. Помню, лет семь назад картинки счетчика лиру распознавал, не зная, что он и джэйсон отдает помимо всего прочего, лол.
Да, это был один из вариантов. Я когда-то давно делал распознавалку капчи почты России, чтобы можно было чекать автоматом треки отправок, и снова связываться с этим не хотелось)
Да и все php функции для работы с картинками я юзаю раз в 100 лет, поэтому скорее всего распознавалка делалась бы очень долго, через постоянное курение мануалов, поэтому сделал через получение и отправку капчи)
wget -O cycounter.png https://yandex.ru/cycounter?site.com
convert cycounter.png -separate cycounter2.png
tesseract cycounter2-0.png stdout -c tessedit_char_whitelist=0123456789 -psm 6
230
malysh, спасибо, выглядит просто и гениально, если текущий способ помрет (что весьма вероятно, ибо Яндекс уже начал подсовывать иногда “активные” капчи аля гугловские “выбери все картинки с витринами”), то, наверное, этот возьму на вооружение)
С ходу, правда, не знаю, можно ли аналогично будет сделать на php, с изображениями, можно сказать, вообще толком никогда не работал на php)
Можно для тупых объяснить, что сделал малыш и как этому научиться?
А зочем? Можно же этот самый tesseract тупо через exec() вызывать внутрях пхп.
en.wikipedia.org/wiki/Tesseract_(software)
Я не владею linux’ом дальше cd и top, поэтому я это понял как-то так - качаем картинку с ИКСом, потом берем такую же картинку-болванку без ИКСа (предварительно сделанную), потом “вычитаем” одну картинку из другой (останется область с цифрами), затем распознаем эту область утилитой, фильтруем перед выводом, чтобы остались только цифры, выводим
Но лучше, конечно, чтобы Малыш сам рассказал, хотя при желании все это можно самому пошагово выгуглить))
Незачем, конечно, если ты делаешь скрипт чисто для себя))
А когда для паблика, там надо всякие валидации делать, смотреть возникающие на разных этапах ошибки и т.п., наверняка это можно делать как-то и linux штуками, но я в нем вообще не шарю - поэтому и php
Это вообще, кстати, самый бесячий момент в паблик сервисах. Для себя пишешь скрипт - никакого интерфейса, валидаций, ничего - 30 строчек кода.
Переделываешь в паблик скрипт - вместо 30 строк кода становится 300 сразу + постепенно больше из-за постоянной дописки по куче причин.
p.s. цифры условные, разумеется)
Гугланул, -separate это вычитание каналов, т. е. если по-человечески, перевод картинки в грейскэйл.
Жиза
А, гуд, значит я почти угадал не гугля)