Прокси парсер с использованием curl /Proxy parser using cURL php [закрыт]

225
21 декабря 2018, 17:20

Всем привет!Не могу никак реализовать данное задание,уже несколько дней втыкаю и не могу понять что нужно сделать,завис я конкретно на этом пункте(

[ 1. Распарсите страницу: http://team24.online/proxy используя CURL 2. Проанализируйте результат, постройте цикл очереди CURL запросов, с участием не меньше 10 портов 3. Запустите цикл c очередью, соберите результат, при достижении количества 100 прокси, цикл - прерывается. ]

Извиняюсь может за глупый вопрос,но я понятия не имею как это реализовать(

Answer 1

или лучше примерно так:

<?
function pars($url){
    $ch = curl_init( $url );
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   // возвращает веб-страницу
    curl_setopt($ch, CURLOPT_ENCODING, "");        // обрабатывает все кодировки
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);         // таймаут ответа
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10);       // останавливаться после 10-ого редиректа
    $content = curl_exec( $ch );
    curl_close( $ch );
    preg_match_all( "/<tr[^>]*>([\s\S]*?)<\/tr>/", $content, $m );
    unset( $m[1][0] );
    $arr = array_values( $m[1] );
    $c = 0;
    $out = array();
    foreach( $arr as $k=>$v ){
        if( $c < 100 ){ //будет перебирать до максимум 100
            $v = explode(" ", trim( strip_tags($v) ) );
            $v = array_filter($v, function($el) {
                return !empty($el);
            });
            $v = array_values( $v );
            $_v['ip'] = trim( $v[0] );
            $_v['port'] = $v[1];
            $out[] = $_v;            
        } else {
            break;
        }
        $c++;
    }
    return $out;
}
print_r( pars("http://team24.online/proxy") ); //Производим парсинг сайта, получаем массив всех ипов и портов
?>

на выходе получаем:

Array
(
    [0] => Array
        (
            [ip] => 151.238.136.190
            [port] => 2518
        )
    [1] => Array
        (
            [ip] => 102.208.243.199
            [port] => 2504
        )
..........
Answer 2

данные добыты, далее уже разбирай как пожелаешь:

<?
function pars($url){
    $ch = curl_init( $url );
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_ENCODING, "");
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
    $content = curl_exec( $ch );
    curl_close( $ch );
    preg_match( "/<table[^>]*>([\s\S]*?)<\/table>/i", $content, $m );
    return strip_tags( $m[1] );
}
echo pars("http://team24.online/proxy"); //Производим парсинг сайта
?>
READ ALSO
Разрешение страницы на телефоне

Разрешение страницы на телефоне

На телефоне мой сайт показывается вот так:

191
PHP: md5 генерирует разные значения

PHP: md5 генерирует разные значения

Доброго времени суток

180
Ошибка в коде PHP для сайта

Ошибка в коде PHP для сайта

Помогите найти ошибку в коде пожалуйстаСам ищу и никак найти не могу, в интернете тоже ничего не нашел по данной ошибке

198
Пытаюсь получить ответ из бд в виде json&#39;а

Пытаюсь получить ответ из бд в виде json'а

mysql_fetch_assoc() просит какой-то параметр в виде ресурса, не понимаю что э то значит, основной код:

179