1. Запрос Google API через прокси
Для этого я модифицирую код запроса Google Web API : как видно из кода в функцию добавился параметр $use_proxy, который указывает что для запроса надо использовать прокси сервера. Прокси сервера у нас будут расположены в файле in\proxies.txt и будут выбираться случайно при каждом запросе. Кроме того хочу обратить внимание что в параметры CURL - запроса введены следующие опции :
- CURLOPT_HEADER - не получать http заголовок (это отменит передачу ненужного нам заголовка)
- CURLOPT_ENCODING - данные запроса сжимаются gzip (это уменьшит размер передаваемой информации)
- CURLOPT_PROXY - собственно то, что мы будем использовать прокси (это ускорит процесс сбора)
- CURLOPT_TIMEOUT - максимальное время обработки запроса (это отсеет медленные прокси)
2. Код запуска сбора Поисковых результатов
Теперь сам запускающий сбор данных код : здесь я убрал паузы между запросами и при плохом запросе. И добавил переменную которая будет отсекать медленные прокси - $proxy_timeout=2 (секунды). И при запросе Google API теперь указываю что нужно использовать прокси.
Вывод
Запустив этот код сбора на выполнение, мы получаем что 55 запросов прошло примерно за 150 секунд. Т.е за сутки мы получим около 28000 собранных запросов или почти 100 000 поисковых результатов (это на бесплатных прокси серверах). В принципе неплохо для одной машины в один поток, но это еще не предел. В следующем посту я расскажу как это промасштабировать чтобы получать скажем в 100 раз больше c одной машины.
Метериалы
Весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь.


Комментариев нет:
Отправить комментарий