get($key); if(empty($result)){ $client=new Client(); // 访问一个网页 $crawler = $client->request('GET', 'https://www.nikkei.com/news/category/markets/'); // 提取所有的段落 $paragraphs = $crawler->filter('li.cardListItem_cq2exak a')->each(function ($node) { $url="https://www.nikkei.com".str_ireplace('https://www.nikkei.com','',$node->attr('href')); $img_obj=$node->filter('div.image_i66x7bx img'); $img_url=""; if($img_obj->count()>0){ $img_url=$node->filter('div.image_i66x7bx img')->attr('src'); } if(!empty($img_url)){ return [ 'title'=>$node->filter('span.articleTitle_axocstj')->text(), 'img_url'=>$img_url, 'href'=>str_ireplace('\\','',$url) ]; } }); $paragraphs=array_filter($paragraphs); $titles = array_flip(array_column($paragraphs, 'title')); $result = []; foreach ($paragraphs as $item) { if (isset($titles[$item['title']])) { $result[] = $item; unset($titles[$item['title']]); //Remove from unique IDs to ensure only first is kept. } } $paragraphs=$result; Cache::store('redis')->set($key,$paragraphs,300); }else{ $paragraphs=$result; } return json([ 'code' => '0', 'message' => 'Request successful.', 'data' => $paragraphs, ]); } public function test(): Json { $client=new Client(); // 访问一个网页 $crawler = $client->request('GET', 'https://www.nikkei.com/news/category/markets/'); // 提取所有的段落 $paragraphs = $crawler->filter('li.cardListItem_cq2exak a')->each(function ($node) { $url="https://www.nikkei.com".str_ireplace('https://www.nikkei.com','',$node->attr('href')); $img_obj=$node->filter('div.image_i66x7bx img'); $img_url=""; if($img_obj->count()>0){ $img_url=$node->filter('div.image_i66x7bx img')->attr('src'); } if(!empty($img_url)){ return [ 'title'=>$node->filter('span.articleTitle_axocstj')->text(), 'img_url'=>$img_url, 'href'=>str_ireplace('\\','',$url) ]; } }); return json([ 'code' => '0', 'message' => 'Request successful.', 'data' => array_filter($paragraphs), ]); } /** * @throws \Exception */ public function testApi() { $uniq = bin2hex(random_bytes(16)); $getEnv = env('ACCOUT_TYPE.ALL_IN_ONE'); return json([ 'code' => '0', 'message' => 'successful', 'data' => [], 'env' => $getEnv, 'random' => $uniq, ]); } public function testSendEmail() { $emailTemplate = EmailTemplateModel::where('tpl_type', EmailTemplateModel::TPL_TYPE_ONE)->find(); if (empty($emailTemplate)) { return json(['code'=>500, 'message'=>'failed']); } $emailTemplate = $emailTemplate->toArray(); $emailTemplate['email'] = '2154243450@qq.com'; $phpEmail = new \app\utility\SendEmail(); $bool = $phpEmail->sendEmail($emailTemplate['email'], $emailTemplate['title'], $emailTemplate['content']); var_dump($bool); return json([ 'code' => '0', 'message' => 'successful', 'data' => $bool, ]); } }