Parse a DOM with Goutte

Code
<?php

use Goutte\Client;
use 
Symfony\Component\DomCrawler\Link;

$client = new Client();

$crawler $client->request('GET''https://bing.com');

$links $crawler->filter('ul a')->links();

/** @var $link Link */
foreach ($links as $link) {
    
printf('<p>%s - <b>%s</b></p>'$link->getUri(), $link->getNode()->nodeValue);
}
Result

https://www.bing.com:443/images?FORM=Z9LH - Bilder

https://www.bing.com:443/videos?FORM=Z9LH1 - Videos

https://www.bing.com:443/maps?FORM=Z9LH2 - Karten

https://www.bing.com:443/news/search?q=news+for+you&FORM=Z9LH3 - News

https://www.bing.com:443/shop?FORM=Z9LHS4 - Shopping

https://www.msn.com/?ocid=BHEA000 - MSN

https://www.office.com?WT.mc_id=O16_BingHP - Office

https://outlook.com/?WT.mc_id=O16_BingHP - Outlook

https://office.live.com/start/Word.aspx?WT.mc_id=O16_BingHP - Word

https://office.live.com/start/Excel.aspx?WT.mc_id=O16_BingHP - Excel

https://office.live.com/start/PowerPoint.aspx?WT.mc_id=O16_BingHP - PowerPoint

https://www.onenote.com/notebooks?WT.mc_id=O16_BingHP - OneNote

https://sway.office.com?WT.mc_id=O16_BingHP&utm_source=O16Bing&utm_medium=Nav&utm_campaign=HP - Sway

https://onedrive.live.com/?gologin=1&WT.mc_id=O16_BingHP - OneDrive

https://calendar.live.com/?WT.mc_id=O16_BingHP - Kalender

https://outlook.live.com/owa/?path=/people&WT.mc_id=O16_BingHP - Kontakte

https://www.bing.com:443/?toWww=1&redig=5A64F590E5444AA2A750CB93D8ED6C36# -

https://www.bing.com:443/?toWww=1&redig=5A64F590E5444AA2A750CB93D8ED6C36# -

https://www.bing.com:443/?toWww=1&redig=5A64F590E5444AA2A750CB93D8ED6C36# -

https://www.bing.com:443/th?id=OHR.Mazezilla_DE-DE3860553669_1920x1200.jpg&rf=LaDigue_1920x1200.jpg -

https://www.bing.com:443/?toWww=1&redig=5A64F590E5444AA2A750CB93D8ED6C36# -

https://www.bing.com:443/th?id=OHR.Mazezilla_DE-DE3860553669_1920x1200.jpg&rf=LaDigue_1920x1200.jpg -

Used Versions
PHP 7.4, Zend 3.0, Symfony 4.3, Laravel 5.8, PHPUnit 8.0, Doctrine 2.10