private function parseWebData($url, $brand) { $response = $this->getPage($url); $html = HtmlDomParser::str_get_html($response); $elements = $html->find('ul.modelList li'); foreach ($elements as $element) { $danawaId = preg_replace('/.*?Model=/', '', $element->find('a', 0)->href); $image = trim($element->find('a div.photo img', 0)->src); $release = trim(str_replace(' 출시', '', $element->find('a div.photo div span.date', 0)->plaintext)); $strBrand = trim($element->find('a div.title img', 0)->alt); $name = trim(str_replace(['올 뉴 ', '더 뉴 ', '신형 ', 'All New ', 'All-New ', 'The New ', 'New '], '', preg_replace('/\\(.+?\\)/', '', str_replace($strBrand, '', $element->find('a div.title', 0)->plaintext)))); $type = trim($element->find('a div.spec span', 0)->plaintext); $arrFuels = preg_split('/\\s?,\\s?/', trim($element->find('a div.spec span', 1)->plaintext)); $fuel = implode(',', $arrFuels); $price = trim($element->find('a div.price span', 0)->plaintext); $vehicle = Vehicle::createOrUpdate(['danawa_id' => $danawaId, 'name' => $name, 'type' => $type, 'fuels' => $fuel, 'price' => $price, 'release' => $release, 'image' => $image], ['name' => $name]); // $vehicle->save(); $brand->vehicles()->save($vehicle); } return count($elements); }