From 140e00821cb5ea4ad5193af255588ad4bb10328c Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Fri, 23 Jan 2026 10:40:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crawl/service/UsedCarCrawlSingle.php | 102 +++++++++--------- 1 file changed, 51 insertions(+), 51 deletions(-) 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