Входящая информация:
1. Список ключевых слов (keywords.txt)
2. Список прокси-серверов (proxy.txt)
На выходе
1. Результаты поиска 100 первых результатов поиска в Google в формате
date \t proxy \t keyword \t position \t url \t is_additional \n
на каждый keyword 100 строк
2. Список proxy_bad.txt
Большинство прокси рабочие, но если не загрузился результат, то нужно пробовать загрузить тестовую страницу
ya.ru. Если и она не загрузилась, то добавить в список плохих прокси; не использовать его больше; попробовать загрузить страницу с google с другим прокси.
Основное требование многопоточность и работа с прокси (обычные, не SOCKS). Желательно на Perl или Python, но подходит любой язык, который можно установить на FreeBSD из портов.
Код на PHP, чтобы не думать о парсинге:
1. Скачивать sprintf('
www.google.com/search?hl=... 0&lr=&as_filetype=&ft=i&as_sitesearch=&as_qdr=all&as_rights=&as_occt=any
&cr=&as_nlo=&as_nhi=&safe=images', urlencode($keyword))
2. preg_match_all('#.*.*(.*).*.*(.*)
#msiU', $s, $m, PREG_SET_ORDER)
3. $position = 1;
foreach ($m as $match) {
$url = $match[2];
//$title = $match[3];
//$snippet = $match[4];
$is_additional = (strpos($match[1], 'margin-left')!==false) ? 1:0;
// тут добавить куда-то
$position++;
}