Как выгрузить все площадки из биржи Miralinks.ru и проверить качество доноров перед покупкой ссылок

Биржа Miralinks не предоставляет API для управления аккаунтом и не идет ни на какое сотруничество с нами (полагаю, что и со всеми остальными тоже). Также у биржи нет возможности экспортировать каталог площадок. Поэтому остается либо довольствоваться теми данными, что предоставляет сама биржа, либо бороться с наложенными ограничениями. Мы за второй вариант! И специально для вас подготовили js-скрипт, который автоматически пролистает все страницы каталога, сохранит все ссылки на представленные сайты и подготовит для вас список.

Все очень просто, вам нужно совершить всего несколько шагов, описанных ниже.

Экспорт списка площадок из биржи Miralinks

Авторизуйтесь и заходите в свой аккаунт. Сразу можно переходить к списку площадок, даже если у вас не создано ни одного проекта.

Рекомендуем вам настроить фильтрацию, заранее указав требуемые параметры (например, ИКС, кол-во страниц в индексе, возможно, тематику, но главное - стоимость, незачем проверять площадки, на которых вы точно не будете размещаться). Скорость парсинга каталога площадок зависит от количества страниц, помните об этом. Рассчет следующий: 1 страница = 10 секунд. При этом существует вероятность блокировки на время, если система заподозрит автоматизацию действий.

Итак, находясь на странице со списком площадок в Miralinks, необходимо нажать клавишу F12, чтобы открыть панель разработчика, и выбрать вкладку "Консоль".

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

const DISPLAY_LENGTH=50;function generateBody(t){let a=new FormData;for(const e in t)a.append(e,t[e]);a.append("tsDataTableType","with_checking"),a.append("tsDataTableConfigType","dataTable.Catalog"),a.append("iDisplayLength",DISPLAY_LENGTH),a.append("iSortingCols",1),a.append("searchData",JSON.stringify(ML.Storages.getUsersRemoteStorage().__STORE__.lastCatalogFilter));for(const t in window.dataTables)if(t.startsWith("Catalog_")){const e=window.dataTables[t].fnSettings();for(const t in e.aaSorting)a.append(`bSortable_${t}`,!0),a.append(`iSortCol_${t}`,e.aaSorting[0][0]),a.append(`sSortDir_${t}`,e.aaSorting[0][1])}return a}let result=[];function download(){let t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(result.join("\n"))),t.setAttribute("download","domainList.txt"),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}async function load(t){const a=await fetch(`${window.location.origin}/ajaxPort/loadDataTableDataCatalog`,{method:"POST",body:generateBody(t),headers:{"x-requested-with":"XMLHttpRequest"}}),e=await a.json(),o=[];for(const t of e.aaData){const a=t.rowData;if(a["@count"]>=2){await load({sGroupValue:a["@groupby"],iDisplayStart:0});continue}const e=a["Ground.folder_url_wl"];e&&o.push(e)}result.push(...o),console.log("Собрано: ",result.length,"URLs: ",o),0===e.aaData.length||DISPLAY_LENGTH>e.aaData.length||await new Promise((a=>{setTimeout((async()=>{const e={iDisplayStart:t.iDisplayStart+DISPLAY_LENGTH};t.sGroupValue&&(e.sGroupValue=t.sGroupValue),await load(e).then((()=>{a()}))}),2e3)}))}async function init(){await load({iDisplayStart:0}),download()}init();

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

Нажимаем Enter и смотрим, как скрипт собирает площадки, в консоли вы увидите весь процесс работы.

Пока скрипт не дойдет до последней страницы, он не выдаст результат. Когда скрипт дойдет до последней страниц, он заваршит свою работу и браузер скачает файл domainList.txt (ищите его в загрузках).

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

Дальше со списком ссылок мы будем рабоать в CheckTrust.

Проверка списка площадок в CheckTrust

Теперь авторизуйтесь в личном кабинете Чектраста, выбирайте "Новый проект" в меню и проект типа "Проверка произвольных ссылок".

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

Дальше вы все знаете сами: отмечаете нужные параметры и создаете проект. За несколько минут он полностью обработается. На этом этапе многих будет ждать расстройство, потому что большинство площадок, отмеченных биржей как супер качественные (Miralinks Rating = 100), будут иметь Траст < 10! Понятно, что площадки, цена размещения на которых от 3000р и выше будут иметь средний или высокий траст, но почему тогда площадки за 200р и 10000р имеют рейтинг системы 100%? Нам эта система не понятна.

Это наше личное мнение и вы можете его не разделять. Да и потом, мы всего лишь рассказываем о том, как выгрузить площадки и проверить их качество.

Создание списка качественных площадок

Прямо в проекте в Чектрасте вы можете применить фильтр "Хорошие доноры" (в эту выборку попадут также и отличные доноры) и сразу же сделать экспорт списка по фильтру:

В полученном при экспорте файле выделяем первую колонку "Хост" и копируем в буфер (ctrl+c). Возвращаемся в аккаунт биржи и выбираем пункт меню "Списки площадок".

Заходим в список "Избранное" и нажимаем кнопку "Добавить адреса". Вставляем наш список и сохраняем.

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

Дальше вы можете работать с системой и покупать ссылки, как вы всегда это делали - выбираете площадки и заказываете размещение!

Теперь вы будете размещать свои ссылки только на качественных площадках!

В качестве послесловия

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

Спасибо за внимание и до новых встреч.