Petrz, Яндекс стал просить капчу на вход если страна входа отличается.
В текущей версии модуля нет распознавания капчи на вход, вот и не видит капчу.
Поскольку вводить по 2 капчи вместо 1 - затратно, то сейчас пишется новая версия программы, где будут добавлены API функции по работе с сессиями (IP адрес, юзерагент, куки), что позволит запоминать хорошие сессии и значительно сократить расходы на капчу.
Релиз ожидается в течение этой недели.
под Яндекс и Bing, под Google пока не работает.
Пишу:
- программы на языке Java,
- модули к программе TOBBOT.
Обращайтесь!
Консультация бесплатно ☝
Сегодня утром я получил письмо с просьбой написать модуль для удаления страниц из индекса Яндекса: https://webmaster.yandex.com/delurl.xml Для решения данной задачи мне понадобилось не более 15 мин. При этом большая часть времени ушла на изучение и тестирование различных поведений сервиса.
Шаг 1. Изучение сервиса.
Запускаем снифер запросов, которые передает браузер в процессе "общения" с сайтами. Я рекомендую использовать бесплатный снифер Fiddler2, но можно ограничиться и простым плагином HttpFox к браузеру Firefox.
Открываем страницу сервиса и вводим различные адреса (правильные и неправильные, проиндексированные и нет) и записываем ответы сервера на отправленные запросы.
Шаг 2. Создание модуля.
Согласно справочнику разработчика модули должны иметь следующую архитектуру:
Поэтому создаем следующие директории и файлы:
В результате этого у нас получилось 2 текстовых файла:
Для удаления адресов нам потребуется указать их URL, поэтому откроем файл columns.txt и вставим туда всего одну строку:
url
Теперь откроем файл Del.txt и запишем туда следующий код действия:
// устанавливаем случайный User-Agent ... "modules/Common Files/Actions/Set random useragent.txt" // открываем форму запроса на удаление URL URL_GET "https://webmaster.yandex.com/delurl.xml" // парсим скрытые поля формы VAR_RE form_key, http_body, "name=\"key\" type=\"hidden\" value=\"(.*?)\"" VAR_RE form_sk, http_body, "type=\"hidden\" name=\"sk\" value=\"(.*?)\"" // загружаем капчу в кодировке BASE64 и передаем ее на распознавание OCR сервису CHARSET "BASE64", http_body URL_GET "https://i.captcha.yandex.net/image?key=", form_key CHARSET "", http_body VAR_CAPTCHA captcha_text, http_body, "0","0","0","0","4","10","0" // отправляем запрос на удаление // переменные с префиксом row_ содержат значения данных из таблицы, // т.е. переменная row_url содержит адрес страницы, которую нужно удалить URL_POST "https://webmaster.yandex.com/delurl.xml" "url", row_url "do", "remove" "rep", captcha_text "key", form_key "sk", form_sk // проверяем ответ сервера на наш запрос SCRIPT // если задание выполнено if ((http_body.indexOf('The URL will be removed shortly') > 0) || (http_body.indexOf('not indexed') > 0)) { // выполняем команду DONE (выполнено успешно) return 'DONE'; } // если задание не может быть выполнено if ((http_body.indexOf('There is no reason to delete this URL') > 0) || (http_body.indexOf('protocol is not supported') > 0) || (http_body.indexOf('Invalid URL') > 0)) { // выполняем команду UNDONE (не может быть выполнено) return 'UNDONE'; } // если капча распознана неверно, то задание переносится на следующий цикл if (http_body.indexOf('Incorrect CAPTCHA code') > 0) return 'LOG "Incorrect CAPTCHA code"';
Важно! Созраняем все файлы в кодировке UTF-8 без BOM.
Поздравляю! Ваш модуль готов к работе ☝
Скачать готовый модуль Del URL Yandex.
Под Linux тоже работает ;)
Последние новости:
SE Check Index (Backlinks) SE Check Index (Domains) SE Check Index (Pages) Важно! Не забывайте удалять старые и ненужные версии модулей, чтобы избежать путаницы.
TOBBOT + модуль SE Backlinks Index Checker = бесплатная проверка сабжа.
Проверяет как раз через кеш Google, Yandex, Bing.
если список страниц есть, то TOBBOT + модуль SE Index Checker
Cразу уточню, что из аддурилок сейчас работают только Яндекс и Bing.
Чтобы массово добавить урлы:
1. Добавьте строки Rows > Add... Кол-во строк равно кол-ву урлов для добавления.
2. Выделите все строки Rows > Select... > Select All или просто Ctrl + A.
3. Заполните выделенные строки Rows > Edit Selected... Выбираете колонку url в панели Columns, вставьте список урлов в панели Values, нажмите Edit. Точто также заполните остальные колонки строк.