예제 #1
0
 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);
 }