Если вы столкнулись с задачей сбора базы сайтов на движке WordPress, то вам пригодится наше решение. Скрипт, собирающий WordPress сайты в кратчайшие сроки соберет вам актуальную базу автоматически и без вашего участия. Вы получите лишь готовый результат без трудозатрат.
Скрипт работает следующим образом: берёт ключи из файла с поисковыми фразами и вводит их в поле поиска google. Затем разбирает поисковые результаты Google на ссылки. Переходит по ссылкам и проверяет действительно это WordPress или нет. Если сайт прошёл проверку добавляет его в наш список WordPress сайтов. В конце скрипт удаляет дубликаты из списка. И у вас на руках уникальная база WordPress сайтов. С помощью добавления в скрипт дополнительных проверок вы сможете отфильтровать список для ваших целей.
На входе скрипт принимает файл с поисковыми фразами в формате:
/wp-admin/
/wp-admin/ seo
/wp-admin/ ceo
/wp-admin/ sites
wordpress сайты
На выходе получаем файл со списком WP сайтов в формате:
wordpress.org
fr.wordpress.org
t-prod.net
wordpress.buldozer.fr
wp-admin.org.ua
wordpresso.org
nerdfrat.com
fr.forums.wordpress.com
… и т.д.
Настройки скрипта:
// файл с данными для скрипта
$keys = file("data/keys.txt");
// файл с результатами
$res_path="res/wp_sites.txt";
// глубина прохода в поисковые результаты
// со скольких страниц собирать ссылки прежде чем перейти к следующему запросу
// если нужно собирать все ссылки надо просто задать этот параметр = -1
$cnt_pages = 30;
Сам скрипт выглядит следующим образом:
set_default_authorization("","");
// создать второй браузер
$browser->set_count(2);
// удалим дубликаты в результирующем файле
dedupe($res_path);
// кол-во
for($ii=0;$iinavigate("google.com");
// задаём слово в поиск
$input->set_value_by_name("q",$key);
$input->click_by_name("q");
// нажмём пробел для отключения всплывшей подсказки
$keyboard->send_key(32,true);
// нажать enter
$keyboard->send_key(13,true);
// ждём
sleep(1);
// обнулим перед следующим проходом
$crnt_page=1;
while(true)
{
// получим все ссылки на сайты заключённые в тэгах
$sites=$webpage->get_body_inter_prefix_all("","");
$sites=explode("
",$sites);
$browser->set_active_browser(1);
// пройдёмся по всем полученным ссылкам
for($i=0;$i","",trim($sites[$i]));
$site=str_replace("","",$site);
if($site=="")
continue;
// вывод в панель отладки
debug_mess("ссылка на сайт : ".$site);
// проверить найденный сайт это wp или нет
check_wp($site);
}
// сделать активным главный
$browser->set_active_browser(0);
// не перешли на следующую страницу
if(!next_page($crnt_page))
break;
}
// удалим дубликаты в файле с результатами
dedupe($res_path);
}
debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт закончил работу");
// Quit
$app->quit();
?>
Скрипт написан 18.01.2013 в Human Emulator 4.6.2 Advanced.
На момент публикации статьи 21.01.2013 скрипт был рабочий.
Constantine Anonimaus
Не работает.