Я более чем уверен что этот скрипт максимально медленный, по этому прошу помощи. Мне нужно лишь подсказать что можно сделать для ускорение толкового, либо указать где срочно нужно убрать что-то. Спасибо
<?php
set_time_limit(3000);
# Функция для сохранения изображений
function GetImageFromUrl($link) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch,CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
return $result;
}
require 'simple_html_dom.php'; // подключаем библиотеку
require 'db.php'; // подключаем базу данных
$html = file_get_html('https://iaai.com/ru-ru/LiveAuctionsCalendar#stay_here'); // что парсим
# Главная информация
$massive_name = []; // Массив для названия объявления
$massive_link = []; // Массив ссылок на аукцион
# Информация автомобиля
$stock = []; $selling_branch = []; $vin_status = []; $loss = []; $primary_damage = [];
$title_sale_doc = []; $title_sale_doc_brand = []; $start_code = []; $key = [];
$odometr = []; $airbags = [];
//------[Vehicle Description]------
$vehicle = []; $body_style = []; $engine = []; $transmission = []; $drive_line_type = [];
$fuel_type = []; $cylinders = []; $restraint_system = []; $exterior_interior = [];
$manufactured_in = []; $model = [];
//------[SALE INFORMATION]--------
$vehicle_location = [];
$auction_date_time = []; $lane_run = []; $aisle_stall = [];
$actual_cash_value = []; $estimated_repair_cost = []; $seller = [];
# Получаем ссылки для аукционов
foreach($html->find('.table-cell--status a') as $element) { // ищем нужный елемент
$massive_name[] = [
'https://iaai.com/ru-ru/'.$element->href // запись в массив ссылки на аукционные объявление
];
}
# Достаем ссылки аукционов
for($i = 0; $i < count($massive_name); $i++) {
$href = file_get_html($massive_name[$i][0]); // что парсим
foreach($href->find('.js-show-hide-image a') as $element) { // ищем нужный елемент
$massive_link[] = [
$element->href // запись в массив прямой ссылки на аукционное объявление
];
}
}
for($i = 0; $i < count($massive_link); $i++) {
$href = file_get_html($massive_link[$i][0]); // что парсим
$info = $href->find('.data-list__item span'); // ищем нужный елемент
$info_ = $href->find('.data-list__item a'); // ищем нужный елемент
$get = file_get_contents('https://bid.cars/app/search/fast/'.strip_tags($info[1])); // ищем лот
$obj = json_decode($get); // переводим json в массив php
$vin_get = file_get_html($obj->{'url'}); // переходим на страницу лота
$vin = $vin_get->find('.vin-drop h1'); // ищем нужный елемент
$sell = $vin_get->find('.h5 span i b'); // ищем нужный елемент
# Запись данных в массиви
$stock[] = [
$info[1]
];
$selling_branch[] = [
$info[3]
];
$loss[] = [
$info[10]
];
$primary_damage[] = [
$info[12]
];
$title_sale_doc[] = [
$info[14]
];
$title_sale_doc_brand[] = [
$info[16]
];
$start_code[] = [
$info[21]
];
$key[] = [
$info[26]
];
$odometr[] = [
$info[28]
];
$airbags[] = [
$info[30]
];
$vehicle[] = [
$info[37]
];
$body_style[] = [
$info[39]
];
$engine[] = [
$info[44]
];
$transmission[] = [
$info[46]
];
$drive_line_type[] = [
$info[48]
];
$fuel_type[] = [
$info[50]
];
$cylinders[] = [
$info[52]
];
$restraint_system[] = [
$info[54]
];
$exterior_interior[] = [
$info[56]
];
$manufactured_in[] = [
$info[59]
];
$model[] = [
$info[61]
];
$vehicle_location[] = [
$info[83]
];
$auction_date_time[] = [
$info_[1]
];
$lane_run[] = [
$info[86]
];
$aisle_stall[] = [
$info[88]
];
$actual_cash_value[] = [
$info[90]
];
$estimated_repair_cost[] = [
$info[93]
];
$vin_status[] = [
$vin[0]
];
$seller[] = [
$sell[0]
];
$sql = "INSERT INTO `auction`(`stock`, `selling_branch`, `vin_status`,
`loss`, `primary_damage`, `title_sale_doc`, `title_sale_doc_brand`, `start_code`,
`key_`, `odometr`, `airbags`, `vehicle`, `body_style`, `engine`, `transmission`,
`drive_line_type`, `fuel_type`, `cylinders`, `restraint_system`, `exterior_interior`,
`manufactured_in`, `model`, `vehicle_location`, `auction_date_time`, `lane_run`, `aisle_stall`,
`actual_cash_value`, `estimated_repair_cost`, `seller`) VALUES
('".strip_tags($stock[$i][0])."','".strip_tags($selling_branch[$i][0])."','".strip_tags($vin_status[$i][0])."','".strip_tags($loss[$i][0])."'
,'".strip_tags($primary_damage[$i][0])."','".strip_tags($title_sale_doc[$i][0])."','".strip_tags($title_sale_doc_brand[$i][0])."'
,'".strip_tags($start_code[$i][0])."','".strip_tags($key[$i][0])."','".strip_tags($odometr[$i][0])."'
,'".strip_tags($airbags[$i][0])."','".strip_tags($vehicle[$i][0])."','".strip_tags($body_style[$i][0])."'
,'".strip_tags($engine[$i][0])."','".strip_tags($transmission[$i][0])."','".strip_tags($drive_line_type[$i][0])."'
,'".strip_tags($fuel_type[$i][0])."','".strip_tags($cylinders[$i][0])."','".strip_tags($restraint_system[$i][0])."'
,'".strip_tags($exterior_interior[$i][0])."','".strip_tags($manufactured_in[$i][0])."','".strip_tags($model[$i][0])."'
,'".strip_tags($vehicle_location[$i][0])."','".strip_tags($auction_date_time[$i][0])."','".strip_tags($lane_run[$i][0])."'
,'".strip_tags($aisle_stall[$i][0])."','".strip_tags($actual_cash_value[$i][0])."','".strip_tags($estimated_repair_cost[$i][0])."'
,'".strip_tags($seller[$i][0])."')"; // Запрос в базу данных для добавление новой записи
$dbh->query($sql); // отправляем запрос
$id = $dbh->lastInsertId(); // получаем ID новой записи
foreach($vin_get->find('.gallery-thumbnails a') as $element) { // ищем нужный елемент
preg_match("/('(.*?)')/", $element->getAttribute('style'), $matches); // Достаем из стиля css ссылку на изображение
$sql = "INSERT INTO `images` (`name`,`id_auction`) VALUES ('".$matches[2]."','".$id."')"; // Запрос в базу данных для добавление новой записи
$dbh->query($sql); // отпарвляем запрос
}
}
exit();