调整代码块
This commit is contained in:
@@ -62,6 +62,57 @@ class UsedCarCrawlSingle
|
|||||||
return $pcUrl;
|
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端地址
|
* 通过汽车之家分享链接获取pc端地址
|
||||||
*
|
*
|
||||||
@@ -140,57 +191,6 @@ class UsedCarCrawlSingle
|
|||||||
return $pcUrl;
|
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
|
* @param Request $request
|
||||||
|
|||||||
Reference in New Issue
Block a user