diff --git a/app/common/utils/crawl/service/UsedCarCrawlSingle.php b/app/common/utils/crawl/service/UsedCarCrawlSingle.php index e3372ad..4e079ce 100644 --- a/app/common/utils/crawl/service/UsedCarCrawlSingle.php +++ b/app/common/utils/crawl/service/UsedCarCrawlSingle.php @@ -62,6 +62,57 @@ class UsedCarCrawlSingle return $pcUrl; } + /** + * 从移动端url获取sku_id + * @param string $url + * @return string|null + */ + public function getPcUrl(string $url): ?string + { + $query = parse_url($url, PHP_URL_QUERY); + if (!$query) { + return null; + } + + parse_str($query, $params); + + return !empty($params['sku_id']) ? 'https://www.dongchedi.com/usedcar/'.$params['sku_id'] : null; + } + + /** + * 抓取懂车帝二手车信息 + * @param string $url + * @return array + * @throws GuzzleException + */ + public function crawlCar(string $url){ + $html = $this->fetchHtml($url); + if ($html === '' || str_contains($html, '404 Not Found')) { + throw new BusinessException("页面内容为空: {$url}"); + } + + $info = $this->parseUsedCarDetail($html, $url); + +// $insertId = $this->saveUsedCarBasicInfo($info); + + // 下载图片 + 上传 + 入库(图片失败不影响主记录) + $imagesArray = json_decode($info['images'] ?? '[]', true); + if (json_last_error() !== JSON_ERROR_NONE) { + $imagesArray = []; + } + $saveDir = public_path('uploads/usedcar/' . $info['used_car_id']); + $image = $this->uploadAndRemove($imagesArray, $saveDir); + $info['image'] = $image['image']; + $info['image_pull'] = $image['image_pull']; + + // 继续派发配置页任务 +// if (!empty($info['car_id_url'])) { +// $this->pushUrl($info['car_id_url'], 'config', $insertId); +// } + + return $info; + } + /** * 通过汽车之家分享链接获取pc端地址 * @@ -140,57 +191,6 @@ class UsedCarCrawlSingle return $pcUrl; } - /** - * 从移动端url获取sku_id - * @param string $url - * @return string|null - */ - public function getPcUrl(string $url): ?string - { - $query = parse_url($url, PHP_URL_QUERY); - if (!$query) { - return null; - } - - parse_str($query, $params); - - return !empty($params['sku_id']) ? 'https://www.dongchedi.com/usedcar/'.$params['sku_id'] : null; - } - - /** - * 抓取懂车帝二手车信息 - * @param string $url - * @return array - * @throws GuzzleException - */ - public function crawlCar(string $url){ - $html = $this->fetchHtml($url); - if ($html === '' || str_contains($html, '404 Not Found')) { - throw new BusinessException("页面内容为空: {$url}"); - } - - $info = $this->parseUsedCarDetail($html, $url); - -// $insertId = $this->saveUsedCarBasicInfo($info); - - // 下载图片 + 上传 + 入库(图片失败不影响主记录) - $imagesArray = json_decode($info['images'] ?? '[]', true); - if (json_last_error() !== JSON_ERROR_NONE) { - $imagesArray = []; - } - $saveDir = public_path('uploads/usedcar/' . $info['used_car_id']); - $image = $this->uploadAndRemove($imagesArray, $saveDir); - $info['image'] = $image['image']; - $info['image_pull'] = $image['image_pull']; - - // 继续派发配置页任务 -// if (!empty($info['car_id_url'])) { -// $this->pushUrl($info['car_id_url'], 'config', $insertId); -// } - - return $info; - } - /** * 抓取汽车之家数据 * @param Request $request