Уведомления о работе PHP сборщиков (уведомление на E-Mail через PHP)

В процессе сбора данных наши сборщики будут работать сутками и нам надо следить за их работоспособностью. Например упал сервер, изменились условия сбора или просто отключили свет. Чтобы постоянно не следить за работой нужен механизм извещения о процессе работе сборщиков данных. Для этого идеально подходит отправка писем на заданный электронный адрес, например раз в сутки.

скриншот получения статистики сбора данных

В PHP есть встроенная функция отправки писем mail , однако для наших целей этой функции недостаточно, потому что чтобы ей воспользоваться нужно лезть в пхп настройки что не очень удобно для простоты переносимости сборщиков с машины на машину.  Тем более я планирую изменить код так, чтобы одновременно работало много сборщиков на разных машинах. В интернете много готового кода отправки почты на PHP. Немного погуглив и посмотрев реализации, я остановился на php_libmail (Универсальный PHP класс для отправки почты), скачать и ознакомится с описанием которого можно здесь.

По сути это довольно простой и удобный класс, выполняющий те функции, которые нам нужны. Подключив его, слегка изменим наш класс CLogEvent, создав возможность отправки писем. Отправка теперь осуществляется через $log->event_mail($subject,$event); , где $subject  — тема письма, а $event — произошедшее событие, а для указания сервера с которого будет происходить отправка я использовал mail.rambler.ru, хотя можно было указать любой smtp сервер.

Теперь о том как его применять : для этого создадим скрипт сбора и отправки статистики , который запустим после запуска потоков сборщиков. Он будет раз в сутки опрашивать статистику сбора и отправлять нам ее на почту. Таким образом мы не прилагая больших усилий будем получать статистику работы сборщиков на свой электронный ящик.

отправленное через PHP на gmail письмо со статистикой сбора

Материалы :

Как всегда весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь. А где взять поисковые запросы и ключевые слова можно найти здесь. Пожелания и предложения по коду и сотрудничеству можно присылать на почту или в комментарии.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в PHP, Использование Web API, Сбор ключевых слов Метки: , , , ,

Многопоточный PHP сборщик поисковых подсказок

В предыдущих статьях я описал как создать многопоточные поисковые сборщики на PHP по следующим системам :

  • Google Suggest — сборщик поисковых подсказок Google
  • Yandex Suggest — сборщик поисковых подсказок Yandex
  • Rambler Suggest — сборщик поисковых подсказок Rambler
  • Nigma Suggest — сборщик поисковых подсказок Nigma

Весь код рабочий и выполняет свои задачи. Теперь зайдем с точки зрения удобств. Просто перепишем сборщик так, чтобы можно было запускать сразу сборщики всех типов за один раз. Для этого создадим конфигурационный файл \in\threads_cfg.in  следующего вида :

аббревиатура сборщика;Число потоков
gsu;10
ysu;10
nsu;10
rsu;10

Здесь мы указываем что надо запустить сборщики четырех типов, каждый в десять потоков. Далее готовим папку src — там создаем 4 файла для запуска каждого типа сборщика поисковых результатов в один поток :

  • gsu.php
  • nsu.php
  • rsu.php
  • ysu.php

Теперь модифицируем класс CMultiThreadLauncher , создающий потоки. Добавляем чтение и обработку конфигурационного файла для создания потоков и добавляем запуск потоков. И запускаем на выполнение. В итоге мы имеем одновременный запуск сборщиков любого типа в заданное число потоков. У всех сборщиков одинаковые входные данные запросов src/queries.txt и прокси src/proxy.txt. Эти данные делятся согласно числу потоков для каждого типа сборщика и запускается сбор.

пример сбора поисковых результатов с различных поисковых систем

сбор поисковых подсказок с различных поисковых систем

Материалы :

Как всегда весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь. А где взять поисковые запросы и ключевые слова можно найти здесь. Пожелания и предложения по коду и сотрудничеству можно присылать на почту или в комментарии.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в PHP, Использование Web API, Сбор ключевых слов Метки: , , , ,

Сбор поисковых подсказок Rambler (многопоточный PHP сборщик)

Идем далее по местам где можно получить поисковые подсказки. Следующая поисковая система это Rambler. С нее тоже можно получать вполне приличные поисковые запросы.

скриншот поисковых подсказок Рамблера по слову

пример поисковых подсказок Рамблера

Посмотрев в интернете мы найдем, что для запросов используется следующий адрес. Все это хорошо вписывается в наш базовый класс и систему сбора. Создаем класс CRamblerSuggest, порожденный от CBaseWebAPI. Меняем в нем $requested_url, $name и метод разбора и сохранения результатов на диск $this->save. На этом все, сбор данных с рамблера готов. Как видим из сделанного, имея базовые классы гораздо проще и быстрее делать готовые полнофункциональные сборщики поисковых подсказок. Так что ООП наше все. Далее запускаем это дело на сбор и у нас получилась уже система из четырех сборщиков получающих поисковые подсказки.

как собрать поисковые подсказки с Rambler.ru

процесс сбора поисковых подсказок с Rambler.ru

Все хорошо работает , но это еще требует большей автоматизации. Например хотелось бы видеть как идет сбор не залезая в логи каждого сборщика, хотелось бы получать уведомления по е-майл или icq и много чего еще … Т.е есть куда двигаться, в следующей статье я создам прообраз системы сбора на основе этих четырех сборщиков.

Материалы :

Как всегда весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь. А где взять поисковые запросы и ключевые слова можно найти здесь. Пожелания и предложения по коду и сотрудничеству можно присылать на почту или в комментарии.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в PHP, Использование Web API, Сбор ключевых слов Метки: , , , ,

Сбор поисковых подсказок Nigma(многопоточный PHP сборщик)

Еще одно место где можно получить поисковые запросы это подсказки поисковой системы Nigma.ru. Набрав в ней например «поисковые п» мы получим следующее :

скриншот выдачи поисковых подсказок с Nigma.ru

поисковые подсказки Nigma.ru

Поискав в интернете , определяем что запрос поисковых подсказок идет по следующему адресу. Т.е в самом конце стоит слово запроса по которому нам надо получить подсказки. Модифицируем наш исходный код из предыдущей статьи. Для этого создаем класс CNigmaSuggest, опять же унаследованный от базового класса CBaseWebAPI.

Кроме того улучшаем возможности всех предыдущих сборщиков, внося в базовый класс возможность управления сбором через папку control, записывая в эту папку следующие файлы мы можем управлять работой каждого потока сборщика :

  • stop.control — указывает что сборщик надо остановить
  • pause.control — указывает что сборщик надо поставить на паузу (в файле содержится на сколько секунд нужно сделать паузу)
  • write_stat.control — указывает что потоку сборщика нужно обновить файл статистки о своей работе
  • add_proxy.control — указывает что потоку сборщика надо добавить те прокси что содержатся в этом файле и продолжить свою работу
скриншот сбора поисковых подсказко с Nigma.ru

процесс сбора поисковых подсказок с Nigma.ru

Таким образом мы получаем уже довольно гибкую систему сбора поисковых подсказок. Система управления сбором нам пригодится чтобы потом написать скрипт-оболочку, которая будет управлять всем нашим сбором данным, обновлять прокси, выводить статистику сбора на экран. Это мы реализуем в следующих статьях.

Материалы :

Как всегда весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь. А где взять поисковые запросы и ключевые слова можно найти здесь.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в PHP, Использование Web API, Сбор ключевых слов Метки: , , , ,

Сбор поисковых подсказок Yandex (многопоточный PHP сборщик)

При наборе слов в Яндекс также как и в Гугл, выдаются поисковые подсказки по словам. Т.е набрав слово сбор данных мы получим следующее :

скриншот поисковых подсказок Яндекс по слову сбор данных

пример поисковых подсказок Яндекс

Поискав в интернете определяем что запрос идет по следующему адресу : т.е в самом запросе указывается слово по которому надо получить подсказки. Модифицируем и улучим код для сбора из предыдущей статьи по созданию сборщика поисковых подсказок Google. Для этого я создал базовый класс сборщика CBaseWebAPI, в который вынес весь повторяющийся код из двух предыдущих сборщиков и класс CYandexSuggest, в котором собственно описал особенности сбора поисковых запросов Yandex, взяв за основу базовый класс. В итоге у нас получился очень красивый и понятный код для всех классов. Преимущества — быстрая расширяемость и модификация. Слабое место прокси, но как показывает практика зарядив около 10 000 проксей мы получаем вполне устойчивую работу в 20 потоков.

скриншот сбора поисковых подсказок Yandex

процесс сбора поисковых подсказок Yandex в 2 потока

Далее в следующем посту сделаем так чтобы в процессе работы мы могли пополнять прокси сервера. Это нужно для потоков где произошла выбраковка ниже критической отметки. Так мы сможем продолжать сбор без перезапуска скрипта.

Материалы :

Как всегда весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь. А где взять поисковые запросы и ключевые слова можно найти здесь.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в Общая информация

Сбор поисковых подсказок Google (многопоточный PHP сборщик)

При наборе слов в Google нам выдаются определенные поисковые подсказки. Т.е например при вводе автоматизация бизнеса , гугл нам предлагает следующие варианты поисковых запросов :

скриншот поисковых подсказок по автоматизации бизнеса

пример поисковых подсказок Google

Поискав в интернете можно найти урл, по которому идет запрос этих данных : т.е в самом конце — то слово, по которому получаются подсказки. Модифицируем исходный код из обучающего примера по созданию сборщика. Создадим класс CGoogleSuggest, подключим его на сбор, слегка модифицировав паузы для работы скриптов (подбирал экспериментальным путем) мы получим код для сбора поисковых подсказок Гугла.

Таким образом мы с минимальными усилиями получили сборщик поисковых подсказок Google. Слабым местом этого сборщика как и предыдущего являются прокси. В следующих постах я расскажу как решить эту проблему.

Материалы :

Весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь. А где взять поисковые запросы и ключевые слова можно найти здесь.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в PHP, Использование Web API, Сбор ключевых слов Метки: , , , ,

Пишем простейший сборщик, использующий Google API на PHP. (Выводы)

В предыдущих статьях я описал как организовать сбор поисковых результатов Google, используя его API, в многопоточном режиме на PHP. Приведу материалы в порядке публикации :

  1. Немного теории о Сборе Данных с Веба
  2. Пишем простейший сборщик, использующий Google API на PHP. (Запрос и Сохрание)
  3. Пишем простейший сборщик, использующий Google API на PHP. (Циклы и Продолжение)
  4. Пишем простейший сборщик, использующий Google API на PHP. (Прокси)
  5. Пишем простейший сборщик, использующий Google API на PHP. (Многопоточность)
  6. Пишем простейший сборщик, использующий Google API на PHP. (Классы)
  7. Пишем простейший сборщик, использующий Google API на PHP. (Увеличение эффективности Прокси)
скриншот запуска многпоточного сбора Гугл в 5 потоков

сбор поисковых результатов гугла в 5 потоков

Этот цикл статей рассказывал о принципах сбора данных в интернете. Теперь подведем итоги. Как видно из эволюции исходного кода, для того чтобы написать более менее рабочий сборщик данных с интернета нужно пройти следующие этапы :

  • Выбрать источник сбора (мы выбрали Google API для поисковых результатов)
  • Выбрать метод сбора (мы выбрали язык программирования PHP)
  • Написать единичный запрос данных и их сохранение
  • Определится с тем как получать данные массово (мы выбрали текстовый файл с запросами и запросы в цикле)
  • Работать над улучшением эффективности сбора (мы выбрали прокси и многопоточное выполнение PHP кода)
  • Работать над структурированностью и расширяемостью кода (мы выбрали классы и реорганизацию кода)
  • Улучшать по мере сил эффективность сбора (мы выбрали улучшение эффективности использования прокси)
  • Дальнейшие улучшения эффективности сбора (опишу в следующих статьях)

Выводы :

В итоге всех действий мы получили полностью рабочий сборщик. Единственный его минус — это когда прокси становится мало, запросы через них останавливаются или идут с меньшей эффективностью. То есть для полномасштабного сбора надо или вводить паузы чтобы наш сборщик не давал банить эти самые прокси или чтобы прокси пополнялись в процессе работы сборщика или использовать другие методы. При правильном подходе в результате нескольких итераций мы получим сборщик, который будет устраивать нас по всем параметрам. На этом я закончу вводный обучающий курс и перейду к более интересным и практичным задачам.

Далее я собираюсь модифицировать код и написать на основе его сборщик ключевых слов по поисковым подсказкам Google. Отладить и запустить его на сбор. Поисковые слова вещь хорошая и ценная. На основе них можно много чего сделать. Мне же они нужны для своих целей, которые приносят хороший доход. Спасибо за внимание.

Материалы :

Весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в PHP, Использование Web API, Обучение

Пишем простейший сборщик, использующий Google API на PHP. (Увеличение эффективности Прокси)

В прошлых постах, я создал многопоточный сборщик поисковых результатов Google API на PHP. Из опыта использование получилось что скорость его работы сильно зависела от качества использованных проксей. Сегодня я видоизменил механизм использования проксей в этом сборщике. Для этого был полностью переделан класс CProxyVendor.

скриншот сбора поисковых результатов Google API в многопоточном режиме

скриншот сбора поисковых результатов Google API в многопоточном режиме

Было сделано следующее :

  • прокси теперь берутся не случайно, а циклически
  • после прохождения заданного числа циклов идет выбраковка плохих проксей
  • при достижении минимального числа проксей в файле идет пауза (чтобы сбор продолжался дальше без бана)

Выводы :

В итоге мы получили устойчивый, быстрый сборщик поисковых результатов, производительность которого уже зависит только от количества переданных ему проксей. Теперь чтобы повысить скорость работы всего лишь нужно двигаться в нескольких направлениях :

  1. увеличение числа потоков (весь код готов)
  2. увеличение количества проксей (можно купить или насобирать ручками или нужен скрипт сбора прокси с интернета)

Т.е даже сейчас, если иметь большое число рабочих прокси серверов, то скрипт будет выполнять свои задачи. Как вариант это дело можно и купить. Цены на уже готовые списки прокси серверов не такие большие. Еще вариант получить подписку на платные прокси сервера. И еще вариант воспользоваться уже готовыми программами для сбора и тестирования прокси серверов. Ну и еще вариант — написать скрипт что будет дергать данные сам по мере необходимости с сайтов со списками бесплатных прокси серверов. Также напомню, что материалы о том где найти прокси сервера, можно найти здесь.

В следующей статье я сделаю промежуточные выводы с рекомендациями по созданию и организации сбора данных на PHP на основе предыдущих статей. Так сказать подведу итоги и определю дальнейшие направление развития кода для сбора данных.

Материалы :

Весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в PHP, Использование Web API, Обучение Метки: , , , , ,

Пишем простейший сборщик, использующий Google API на PHP. (Классы)

В предыдущем посту я рассказывал как организовать многопоточный сбор поисковых результатов через Google API и обещал показать как происходит оптимизация и сделать нормальную структуру кода. Для этого я перевел все на классы и объекты. Разбил большие функции на более понятные. Также сделал так чтобы не было повторяющегося кода. В итоге получился тот же сборщик, только уже на объектах:

многопоточный сбор поисковых результатов на PHP (классы)

сбор поисковых результатов на PHP в 5 потоков (классы)

Структура папок  :

  • log — папка для записи логов мультипоточного лаунчера
  • src — папка с исходными данными для всех сборщиков
    • run_once.php — код запуска для одного сборщика
    • in/proxy.txt — файл проксей,  — будет поделен на равные части и каждая часть будет подключена к своему потоку
    • in/queries.txt — файл запросов, — будет поделен на равные части и передан каждому потоку для сбора
  • tools — папка с инструментами — объектами для организации сбора и мультипоточного запуска
    • file_tools.php — класс CFile для работы с файлами в файловой системе (статические функции)
    • folder_tools.php — класс CFolder для работы с папками в файловой системе (статические функции)
    • google_api_sr.php — класс CGoogleAPISearchResults для работы с Google API для поисковых результатов
    • in_data_file.php — класс CInDataFile для работы с файлами входных данных
    • log_tools.php — класс CLogEvent для логирования процессов
    • multi_thread_tools.php — класс CMultiThreadLauncher для органицации и запуска нескольких потоков сбора данных на PHP (организация многопточности)
    • proxy_tools.php — класс CProxyVendor для получения прокси
    • text_file.php — класс CTextFile для работы с текстовыми файлами (статические функции)
    • tools.php — файл обертка для подключения всех классов в один
  • threads — автосоздаваемая папка, в которой будут создано заданное число потоков с номерами 0,1,2 …

Выводы : 

Далее запускаем это все на сбор и имеем тот же результат что и в предыдущем посту, разве что слегка лучше залогированный.  Как видим все теперь стало наглядней, каждый объект отвечает за те действия, что от него требуются. Такой код гораздо быстрее модифицировать, гораздо проще отлаживать и понимать что и как происходит в нем так или не так. Особенно после длительной паузы, особенно другому человеку. Но самое главное в этом подходе это возможность написать следующий сборщик с минимальными усилиями. У нас уже есть классы и методы для решения текущей задачи. И любые следующие сборщики будут написаны  с минимальными усилиями с нашей стороны. В следующих постах я напишу сборщик подсказок гугла. И покажу что для этого требуется минимальная модификация данного кода. Таким образом мы получили зачаток целой системы для сбора данных.

Теперь по дальнейшей оптимизации сбора. Узкий момент в нашей текущей модели это прокси. Во первых прокси «умирают» со временем (перестают отвечать на запросы), во вторых из-за превышения частоты запросов к Google API через один и тот же прокси, Google его банит. Т.е число рабочих прокси уменьшается со временем, а если их станет мало то процесс бана очень сильно ускорится, что совсем нас не устраивает. Поэтому в следующем посту я напишу и отлажу код, который будет решать проблемы прокси.

сбор многопоточного PHP сборщика на объектах

лог сбора многопоточного PHP сборщика на классах

Материалы

Весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в PHP, Использование Web API, Обучение Метки: , , , , ,

Пишем простейший сборщик, использующий Google API на PHP. (Многопоточность)

многопоточный сбор Google API

многопоточный сбор Google API

В прошлый раз я описал как организовать сбор данных на PHP, используя прокси сервера. Скрипт брал слова из файла и запрашивал поисковые результаты по ним через Goggle API. Все это работало через прокси, что существенно повышало скорость работы с Google API. Но все же был существенный недостаток в работе этого скрипта : в текущий момент времени шел только один запрос, хоть мы и использовали прокси сервера. Однако в один и тот же момент времени мы можем делать сразу несколько запросов через прокси, что существенно увеличит скорость работы нашего скрипта.

PHP Скрипт Мультипоточного сбора

Я решил сделать код который будет разбивать задачу на заданное количество потоков. Создавать папки с PHP сборщиком заданной части поисковых запросов и запускать сбор в несколько потоков. Также для этой задачи прокси тоже будут разбиваться на заданное число частей, чтобы в каждом из сборщиков были свои непересекающиеся с другими прокси. После некоторого времени у меня получился следующий код :  здесь $num_threads — число потоков сборщика. $threads_folder — папка где будут создаваться потоки. Этот код разбивает файлы проксей in/proxy.txt  и поисковых результатов in/queries.txt на заданное количество частей, копирует код каждого сборщика из ./src и создает папки со всей структурой для каждого потока.

Далее создается файл run.bat в главной папке, который запускает на выполнение файлы run.php для каждого потока. Тут следует отметить особенности создания этого bat файла, каждый поток запускается следующим образом :  start «номер потока» /i /b «c:/php/php.exe» «Полный путь к run.php каждого потока» :

  • start — запускать php.exe в асинхронном режиме
  • /i — брать настройки из родительского bat  файла для каждого потока
  • /b — не создавать отдельных окон консольных окон для каждого потока

И в файле run.php первая строчка chdir(__DIR__);  — устанавливает текущую папку скрипта для каждого потока. Это надо чтобы при любой ситуации ПХП выстраивал все подключаемые библиотеки относительно текущей папки для каждого потока. И команда system(«cmd /c \»».$bat_file_path.»\»»); — запускает созданный bat файл, который запускает на сбор все потоки. В итоге мы получаем следующий лог, например для первого потока :

лог многопоточного сбора Google API

лог многопоточного сбора Google API

Выводы

Запустив на сбор этот код мы собираем 45 запросов где-то за 55 сек. Т.е примерно в 3 раза быстрее для 5 потоков, по сравнению со сбором в один поток, зависимость тут не линейная, но очень близкая к ней. Таким образом чем большее количество потоков мы запускаем тем выше у нас скорость. Но тут большую роль играет качество и скорость прокси серверов. Т.е на каждый поток нужно как минимум 30-60 хороших прокси , чтобы было как можно меньше неудачных запросов для каждого прокси. И тут еще лучше всего воспользоваться платными прокси серверами,  но также есть несколько вариантов как улучшить работу скрипта не прибегая к платным прокси серверам. Это следующее :

  • Увеличение эффективности использования прокси
  • Оптимизация узких мест скрипта
  • Работа через TOR и другие анонимайзеры
  • Создание своих прокси серверов на VPS
  • Использование VPN

И об этом я расскажу в следующих статьях.  Кроме того в процессе работы у нас уже получилось достаточно много кода. В следующем посту я оптимизирую этот код, заодно покажу основные принципы оптимизации и проектирования для сбора данных на PHP. Ну и как всегда напоследок я даю ссылки на материалы на x-scripts.com касательно этого скрипта.

Материалы

Весь исходный код по этой статье можно скачать здесь. Руководство «Как запустить этот и другие PHP скрипты с этого сайта» всегда можно найти здесь. Где взять платные и бесплатные прокси сервера, можно найти здесь.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Опубликовано в PHP, Использование Web API, Обучение Метки: , , , , ,
Ноябрь 2018
Пн Вт Ср Чт Пт Сб Вс
« Фев    
 1234
567891011
12131415161718
19202122232425
2627282930