Если вы столкнулись с задачей сбора базы сайтов на движке 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
… и т.д.
Настройки скрипта:
1 2 3 4 5 6 7 8 |
// файл с данными для скрипта $keys = file("data/keys.txt"); // файл с результатами $res_path="res/wp_sites.txt"; // глубина прохода в поисковые результаты // со скольких страниц собирать ссылки прежде чем перейти к следующему запросу // если нужно собирать все ссылки надо просто задать этот параметр = -1 $cnt_pages = 30; |
Сам скрипт выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
<?php /* ** // Наш сайт http://x-scripts.com // Скрипт поиска сайтов на wordpress . // страничка скрипта http://x-scripts.com/scripts/search_wp.php // по любым вопросам касающимся скрипта // можно написать нам на мыло order@x-scripts.com ** */ $xhe_host ="127.0.0.1:7010"; // The following code is required to properly run XWeb Human Emulator require("../../Templates/xweb_human_emulator.php"); // //////////////////////// настройки скрипта ///////////////////////// // файл с данными для скрипта $keys = file("data/keys.txt"); // файл с результатами $res_path="res/wp_sites.txt"; // глубина прохода в поисковые результаты $cnt_pages = 30; // текущая страница $crnt_page =1; // скрипт работает в режим отладки $dbg = true; // //////////////////////// дополнительные модули /////////////// // функции require_once("tools/functions.php"); // /////////////////////// скрипт /////////////////////////////////////////// debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт запустили"); // задать авторизацию по умолчанию // что бы не показывало окно авторизации $browser->set_default_authorization("",""); // создать второй браузер $browser->set_count(2); // удалим дубликаты в результирующем файле dedupe($res_path); // кол-во for($ii=0;$ii<count($keys);$ii++) { // получить запрос $key = trim($keys[$ii]); // перейти на гугл $browser->navigate("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) { // получим все ссылки на сайты заключённые в тэгах <cite> $sites=$webpage->get_body_inter_prefix_all("<cite>","</cite>"); $sites=explode("<br>",$sites); $browser->set_active_browser(1); // пройдёмся по всем полученным ссылкам for($i=0;$i<count($sites);$i++) { // переходим на сайт $site=str_replace("<b>","",trim($sites[$i])); $site=str_replace("</b>","",$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 скрипт был рабочий.