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

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

  • Sinkler

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

    Spritz 1 декабря 2014 г. 6:29, спустя 9 минут 27 секунд

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

  • technobulka

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

    Spritz 1 декабря 2014 г. 7: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

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

    Spritz 1 декабря 2014 г. 7:21, спустя 18 минут 28 секунд

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

  • technobulka

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

    Spritz 1 декабря 2014 г. 7: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

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

    Spritz 1 декабря 2014 г. 7:33, спустя 9 минут 33 секунды

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

    Спустя 154 сек.

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

  • technobulka

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

    Spritz 1 декабря 2014 г. 7:58, спустя 24 минуты 35 секунд

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

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

    Spritz 1 декабря 2014 г. 8:05, спустя 6 минут 29 секунд

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

  • technobulka

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

    Spritz 1 декабря 2014 г. 8: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

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

    Spritz 1 декабря 2014 г. 8:17, спустя 2 минуты 42 секунды

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

  • technobulka

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

    Spritz 1 декабря 2014 г. 8:34, спустя 16 минут 28 секунд

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

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

    Spritz 1 декабря 2014 г. 9:34, спустя 1 час 35 секунд

    на глаз - баго

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

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

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

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

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

    Spritz 2 декабря 2014 г. 18:00, спустя 2 часа 1 минуту 36 секунд

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

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

    Spritz 2 декабря 2014 г. 18:14, спустя 13 минут 52 секунды

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

    @Stasovsky, Bug блеядь

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

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

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

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

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

    ege.org.ru ege.net.ru

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