Всем добрый день... Сегодня думал чем заняться после того как успешно сдал математику... (вчера был экзамен) Вобщем написал утилиту, лоадер/гугл-парсер. 1. Парсит гугл (пока только 1 страницу, 100 результатов, если будет продвижение, сделаю парсинг по страницам) 2. По идее передает работу плагинам, а именно циклом foreach начинает пробегать по всем элементам listView'a и передавать ссылку; 3. Если что-то нашли, интерфейс Check (реализованный в плагине) вернул true, то соответствующая строка изменяет цвет на розовый. Реализовано: 1. Парсинг гугла; (Регулярное выражение - (?<=<(\S|\s)*)((?<=(href=('|"")+))|(?<=(href=))[^('|"")])([^'>""\s)]*)(?=('|""|[\S])?) ); 2. Поддержка плагинов; 3. Демо пример плагина SQL-Injection (сделал сам, потом начал искать текста ошибок, в гугле вбил "ошибки во время sql injection" получил 1 ссылку - http://www.rsdn.ru/article/inet/SqlInjectionSearch.xml). Ряд вопросов: 1. Необходим более опытный программист, который поможет разрулить с бизнес логикой; 2. Нужна грамотная реализация поддержки плагинов. Кто поможет? Планируется: 1. Реализация ведения лога путем добавления своего обработчика Exception'ов. При catch'ах генерация нового исключения с описанием ошибки; 2. Добавление многопоточности (Web); 3. Использование PE библиотеки от MS; 4. Выставление критериев поиска; 5. Собственные настройки для плагинов; 6. Визуальное сопровождение работы. "Подводные камни" 1. Автоматически из списка ссылок (при парсинге гугла) исключаются ссылки содержащие в себе "google", не содержащие в себе "http"; 2. При компиляции библиотека Core копируется в папку Plugins, проверял, по сути она там не нужна. Требования: .NET Framework 3.5 7Zip для распаковки архива Бинарник - http://www.sendspace.com/file/b6tbxi 8Kb Исходник - http://www.sendspace.com/file/pb4s69 32Kb
Кстати да, имхо подобные тулзы имеют смысл если результаты будут в файлик выводиться. Т.к. иначе разницы между рассматриванием выдачи гугла или тулзы - нет.
ребят, давайте лучше идею подскажу и думаю эта тулза будет понастоящему полезна каждому. 1) помимо поиска сделать чтото на подобии http://madnet.name/tools/madss/ а) Поиск доступной для просмотра PHPINFO информации б) Вывод директорий сайта, запрещенных к индексированию в) Вывод списка Сайтов на сервере aka (ReverseIP) г) Служебная информация о сервере 2) поиск определённого скрипта на каждом сайте с реверса. 3) всё это можно добавить как плагин к http://code.google.com/p/awebtool/downloads/list + читаем wiki
PHP: <?php // Парсер url после выдачи гугла по запросу $handler=fopen('log.txt','w'); // если не хотим терять старые данные - то "a+" $limit = 0; $zapros = "antichat"; // Наш запрос для поиска $page_start = 0; // Стартовая страница из расчета 100 результатов выдачи на страницу $page_end = 200; // Последняя страница из расчета 100 результатов выдачи на страницу function parse_serp($engine, $query, $limit) { if ($limit<100) {$request = 'http://www.google.com/ie?hl=ru&num=100&start=' . $limit. '&lr=&q='.urlencode(trim($query));} if ($limit>=100) {$request = 'http://www.google.com/ie?q=' . urlencode(trim($query)) . '&num=100&hl=ru&lr=&start=' . $limit . '&sa=N';} $pattern = '/<a title="(.*)" href=(.*)>(.*)<\/a>/isU'; $result = file_get_contents($request); if(preg_match_all($pattern, $result, $matches)) { for ($i=0; $i<count($matches[0]); $i++) { $link = $matches[2][$i]; $serp[] = $link; } } return $serp; } for ($i=$page_start;$i<=$page_end;$i++) { $result = parse_serp("google", $zapros, $i); $log = implode("\r\n",$result); if($handler) {fwrite($handler,$log);} $i=$i+100; if ($i>100) {$i=$i-1;} } fclose($handler); echo "Все данные были сохранены в log.txt"; ?>
парни - гугл - жеще стал и уже жавно - можно по запросу 200 линков (две страницы по сто) и банит за слишком частые - так что соксы в руки
А никто не задумывался над использованием гугл апи - и банов не будет и изобретение велосипеда можно отложить на другие компоненты софтины?