12
Фев
2018

Как ускорить работу парсера?

Делаю парсер, которые должен слить более 10к товаров. При каждом выполнение скрипта проходит по 20 следующим товаром.

Для парсинга использую cURL (получаю HTML код), и Simple HTML Dom Parser (выборка нужных блоков).

Парсер построен так: cURL'ом получаю HTML код страницы каталога с товаром, передаю разметку в HTML Dom Parser:

 $html = str_get_html($html_code);
 $srt_links = $html->find('.block');

Тут приходит 20 блоков, поэтому использую:

foreach ($srt_links as & $value) {

}

чтобы работать со всеми 20-тью блоками.

После идет парсинг каждого товара, то есть получает код 20-ти страниц:

foreach ($srt_links as & $value) { 
    $product = curl($value->href);
    $product_code = str_get_html($product);
    //и тут передаю HTML код страницы товара в Simple HTML Dom Parser чтобы делать выборку по блокам нужной информации.
}

Таким образом получается что парсер переходит и получает сразу HTML код 21 страницы (1 каталог товара + 20 страниц самх товаров). Парсер выполняется около 15 секунд, что очень долго.

Что я делаю не правильно? Как можно ускорить работу парсера?

Источник: https://ru.stackoverflow.com/questions/783777/%D0%9A%D0%B0%D0%BA-%D1%83%D1%81%D0%BA%D0%BE%D1%80%D0%B8%D1%82%D1%8C-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%83-%D0%BF%D0%B0%D1%80%D1%81%D0%B5%D1%80%D0%B0

Тебе может это понравится...

Добавить комментарий