client = new Client(); } /** * Return the latest articles from avas * * @return array */ public function get(): array { $crawler = $this->client->request('GET', "https://avas.mv/"); $feeds = []; $first_batch_dates = []; $second_batch_dates = []; $crawler->filter('div[class*="flex rtl -mx-4 flex-wrap md:px-0"] div[class*="w-full md:w-1/3 px-4 mb-7"] div a timeago')->each(function ($node) use (&$first_batch_dates) { $first_batch_dates[] = $node->attr('datetime'); }); $crawler->filter('div[class*="flex md:-mx-4 flex-wrap md:px-0"] div[class*="w-full md:w-1/5 px-4 mb-8"] div a timeago')->each(function ($node) use (&$second_batch_dates) { $second_batch_dates[] = $node->attr('datetime'); }); $crawler->filter('div[class*="flex rtl -mx-4 flex-wrap md:px-0"] div[class*="w-full md:w-1/3 px-4 mb-7"] div a')->each(function ($node, $i) use (&$feeds, $first_batch_dates) { $feeds[] = [ "title" => trim($node->text()), "link" => "https://avas.mv" . $node->attr('href'), "date" => Carbon::parse($first_batch_dates[$i])->format("Y-m-d H:i:s") ]; }); $crawler->filter('div[class*="flex md:-mx-4 flex-wrap md:px-0"] div[class*="w-full md:w-1/5 px-4 mb-8"] div a')->each(function ($node, $i) use (&$feeds, $second_batch_dates) { $feeds[] = [ "title" => trim($node->text()), "link" => "https://avas.mv" . $node->attr('href'), "date" => Carbon::parse($second_batch_dates[$i])->format("Y-m-d H:i:s") ]; }); return $feeds; } }