Могу посоветовать 2 библиотеки:
rmccue/requests - для парсинга самой страницы
paquettg/php-html-parser - для разбора html кода
На счет производительности не знаю, но этот вариант лично мне удобен и я им пользуюсь на данный момент\
Совет: если будете парсить страницы в цикле, то всегда вконце цикла очищайте переменную, которой присваиваете запрос, типа:
while(1){
$request = Requests::get( $url, $headers, $options );
...
unset( $request );
}