Версия программы: Human Emulator Studio 7.0.47.
Браузер: Chromium и Firefox.
Язык скрипта: PHP
Логика: Имеются ссылки в файле. Скрипт проходит по всем ссылкам проверяет форум это или нет. Если нет, записывает ссылку в файл с плохими (не форумами). Если ссылка это форум или на странице есть ссылка на форум, переходит на форум и проверяет на главной странице наличие заданных тем. Если ссылки содержащие проверочные слова есть, тогда записываем в файл с подходящими, если нет то просто в файл с форумами. На выходе из одного файла получаем три 1. с плохими ссылками - не форумами, 2. файл с ссылками на форумы, где есть интересующие нас темы или разделы 3. файл с ссылками на форумы, где нет интересующих нас тем и разделов.
Для ускорения работы скрипта можно отключить все настройки, такие как картинки, фреймы, скрипты и т.д.
Скрипт состоит:
Запускаемый файл forumchecker.php.
В папку res записываются файлы с результатами анализа.
В папке data лежит файл с ссылками для анализа forums.txt в формате одна строка одна ссылка.
Скачать скрипт: Скрипт:
<?php $xhe_host = "127.0.0.1:7014"; // The following code is required to properly run XWeb Human Emulator require("../../Templates/xweb_human_emulator.php"); // файл со ссылками на форумы $path_forums_file ="data\\forums.txt"; // текущий индекс проверенного $path_ind="data\\ind.txt"; $path_bad_forums = "res\\forums_bad.txt"; $path_good_forums = "res\\forums_good.txt"; $path_good_post_forums = "res\\forums_good_post.txt"; // проверка на форум $forum_str = "ФОРУМ;Форум;форум"; // название темы или раздела который нужно проверить на сайте $post_str = "Софт;cофт;программ;Программ"; // получить все форумы в массив $arr_forums=file($path_forums_file); // текущий индекс проверки $start_ind=0; // если есть индекс берём его if($file_os->is_exist($path_ind)) { $start_ind=trim($textfile->read_file($path_ind)); $start_ind+=1; } // пройдёмся по всему массиву форумов for($i=$start_ind;$i<count($arr_forums);$i++) { echo trim($arr_forums[$i])."<br>"; // переходим на форум $browser->navigate(trim($arr_forums[$i])); sleep(1); $found=false; // делаем проверку на форум $arr_chf = explode(';',$forum_str); foreach($arr_chf as $value) { if($anchor->is_exist_by_inner_text($value,false)) { $found=true; break; } } // не нашли нужную ссылку на форум if(!$found) { // запишем в файл с плохими $textfile->add_string_to_file($path_bad_forums,trim($arr_forums[$i])."\r\n"); $textfile->write_file($path_ind,$i); continue; } // переходим на форум foreach($arr_chf as $value) { if($anchor->click_by_inner_text($value)) break; } // нужные нам темы или ссылки которые есть на форуме $arr_post = explode(';',$post_str); // проверка на интересующие нас темы foreach($arr_post as $value) { if($anchor->is_exist_by_inner_text($value,false)) { // запишем в файл с нужными темами $textfile->add_string_to_file($path_good_post_forums,trim($arr_forums[$i])."\r\n"); $textfile->write_file($path_ind,$i); continue 2; } } // форум но без нужных ссылок $textfile->add_string_to_file($path_good_forums,trim($arr_forums[$i])."\r\n"); } // удалить файл с индексом $file_os->delete($path_ind); // Quit $app->quit(); ?>