ФорумПрограммированиеPHP для идиотовРасширения PHP → Как быстро и тихо спарсить каталог сайта?

Как быстро и тихо спарсить каталог сайта?

  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Дек. 1, 2014, 3:29 д.п., спустя 9 минут 27 секунд

    @Stasovsky, ну покажи хоть как curl_multi используешь

  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz Дек. 1, 2014, 4:02 д.п., спустя 33 минуты 4 секунды

    function getData($items) {
        $ch = array();
        $result = array();
        $mh = curl_multi_init();
    
        foreach ($items as $i => $item) {
            $ch[$i] = curl_init();
    
            curl_setopt($ch[$i], CURLOPT_URL, $item);
            curl_setopt($ch[$i], CURLOPT_HEADER, 0);
            curl_setopt($ch[$i], CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch[$i], CURLOPT_FAILONERROR, 1);
            curl_setopt($ch[$i], CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    
            if (!empty($options)) {
              curl_setopt_array($ch[$i], $options);
            }
    
            curl_multi_add_handle($mh, $ch[$i]);
        }
    
        $running = null;
        do {
            curl_multi_exec($mh, $running);
        } while ($running > 0);
    
    
        foreach ($ch as $i => $c) {
            $result[$i] = curl_multi_getcontent($c);
            curl_multi_remove_handle($mh, $c);
        }
    
        curl_multi_close($mh);
    
        return $result;
    }
    Высокоуровневое абстрактное говно
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Дек. 1, 2014, 4:21 д.п., спустя 18 минут 28 секунд

    @Stasovsky, ну ок, тут всё норм, а список урлов теперь?)

  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz Дек. 1, 2014, 4:24 д.п., спустя 3 минуты 17 секунд

    Пока только эти:
    http://www.entero.ru/search.php?text=30474
    http://www.entero.ru/search.php?text=30632
    http://www.entero.ru/search.php?text=30633
    http://www.entero.ru/search.php?text=30634
    http://www.entero.ru/search.php?text=30635
    http://www.entero.ru/search.php?text=30636
    http://www.entero.ru/search.php?text=30638
    http://www.entero.ru/search.php?text=31506
    http://www.entero.ru/search.php?text=31507
    Высокоуровневое абстрактное говно
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Дек. 1, 2014, 4:33 д.п., спустя 9 минут 33 секунды

    даже секунду не выполняется

    Спустя 154 сек.

    точно тупит именно curl, а не парсинг страницы?)

  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz Дек. 1, 2014, 4:58 д.п., спустя 24 минуты 35 секунд

    Думаешь такое может сильно тупить?
    preg_match('/class=lp>([\d\s.]+)[^<]*/im', $results[$id], $data);
    Высокоуровневое абстрактное говно
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Дек. 1, 2014, 5:05 д.п., спустя 6 минут 29 секунд

    мда. тогда давай версию php и секцию информации о curl из phpinfo, может кто-нибудь придёт и скажет что-нибудь в тему по этим данным)

  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz Дек. 1, 2014, 5:14 д.п., спустя 9 минут 50 секунд

    На локалке PHP 5.3.13, cURL 7.24.0: 9 запросов - 12.5814 сек.
    На серваке PHP 5.2.17, cURL 7.31.0: 9 запросов - 1.7884 сек.
    Высокоуровневое абстрактное говно
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Дек. 1, 2014, 5:17 д.п., спустя 2 минуты 42 секунды

    топик перенесён

  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz Дек. 1, 2014, 5:34 д.п., спустя 16 минут 28 секунд

    Бля. Это же как /dev/null -_-
    Высокоуровневое абстрактное говно
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Дек. 1, 2014, 6:34 д.п., спустя 1 час 35 секунд

    на глаз - баго

    Сапожник без сапог
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz Дек. 2, 2014, 12:58 п.п., спустя 1 день 6 часов 24 минуты

    @phpdude, что такое баго?
    Высокоуровневое абстрактное говно
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz Дек. 2, 2014, 3 п.п., спустя 2 часа 1 минуту 36 секунд

    ну явно не благо
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Дек. 2, 2014, 3:14 п.п., спустя 13 минут 52 секунды

    @phpdude, что такое баго?

    @Stasovsky, Bug блеядь

    Сапожник без сапог
  • katenka141

    Сообщения: 1 Репутация: N Группа: Кто попало

    Spritz Май 15, 2017, 10:13 д.п., спустя 894 дня 17 часов 59 минут

    Он может где угодно лежать, посмотри robots.txt, может повезет.

    Но вообще я бы не парсил сихронно, надо асинхронно парсить сайтик. Например через Scrapy (python). Суть в том, чтобы сделать одновркменно сотни запросов на страницы и коллбеками обрабатывать ответы, тогда не особо важно сколько генерирется страница

    ege.org.ru ege.net.ru

Пожалуйста, авторизуйтесь, чтобы написать комментарий!