Извлечение определенного xml из запроса Goutte из узла, возвращающегося обратно

#php #jquery #laravel #web-scraping #goutte

Вопрос:

Я использую пакет Laravel Goutte для выполнения некоторых веб — работ-следующий код работает и возвращает много данных, я пытаюсь отфильтровать только тот бит данных, который мне нужен.

Если я загружу браузер (при вводе jQuery на страницу) Я могу получить необходимые мне данные с помощью jQuery, используя следующее в консоли jQuery('ea-proclub-overview')[0]; — я в основном пытаюсь выполнить эквивалент этой команды в приведенном ниже экземпляре Laravel/Goutte.

Используя jQuery('ea-proclub-overview')[0].customCrestBaseUrl; консоль, я получаю точный URL — адрес, который мне нужен- https://fifa21.content.easports.com/fifa/fltOnlineAssets/05772199-716f-417d-9fe0-988fa9899c4d/2021/fifaweb/crests/256×256/l’

Ниже приведен мой PHP — код-я возвращаюсь в переменную $node, но я не уверен, как вернуть только тот customCrestBaseUrl , который дает мне URL.

 $client = new Client();
$client->setServerParameter('HTTP_USER_AGENT', 'Mozilla/5.0 (X11; Linux i686; rv:78.0) Gecko/20100101 Firefox/78.0');
$client->setServerParameter('REFERER', 'https://www.ea.com/');

$url = 'https://www.ea.com/en-gb/games/fifa/pro-clubs/ps5-xbsxs/overview?clubId=2552amp;platform=ps5';
$crawler = $client->request('GET', $url);
$crawler->filter('ea-proclub-overview')->each(function ($node) {
  dd($node);
});  
 

ожидаемый результат

 <ea-proclub-overview endpoints="{amp;quot;settingsEndpointamp;quot;:amp;quot;https://proclubs.ea.com/api/fifa/settingsamp;quot;,amp;quot;seasonalStatsEndpointamp;quot;:amp;quot;https://proclubs.ea.com/api/fifa/clubs/seasonalStatsamp;quot;,amp;quot;clubsInfoEndpointamp;quot;:amp;quot;https://proclubs.ea.com/api/fifa/clubs/infoamp;quot;,amp;quot;matchesEndpointamp;quot;:amp;quot;https://proclubs.ea.com/api/fifa/clubs/matchesamp;quot;,amp;quot;memberStatEndpointamp;quot;:amp;quot;https://proclubs.ea.com/api/fifa/members/statsamp;quot;,amp;quot;memberCareerStatEndpointamp;quot;:amp;quot;https://proclubs.ea.com/api/fifa/members/career/statsamp;quot;}" colors="{amp;quot;currentDivisionamp;quot;:{amp;quot;startColoramp;quot;:amp;quot;#FA4358amp;quot;,amp;quot;endColoramp;quot;:amp;quot;#FA4358amp;quot;},amp;quot;nextDivisionamp;quot;:{amp;quot;relegationColoramp;quot;:amp;quot;#FA4358amp;quot;,amp;quot;pointsColoramp;quot;:amp;quot;#FA4358amp;quot;},amp;quot;pieChartamp;quot;:{amp;quot;winsColoramp;quot;:amp;quot;#19A863amp;quot;,amp;quot;lossesColoramp;quot;:amp;quot;#C4010Damp;quot;,amp;quot;tiesColoramp;quot;:amp;quot;#282D3Bamp;quot;},amp;quot;statsamp;quot;:{amp;quot;winsamp;quot;:{amp;quot;startColoramp;quot;:amp;quot;#19A863amp;quot;,amp;quot;endColoramp;quot;:amp;quot;#94D85Damp;quot;},amp;quot;lossesamp;quot;:{amp;quot;startColoramp;quot;:amp;quot;#C4010Damp;quot;,amp;quot;endColoramp;quot;:amp;quot;#F80245amp;quot;},amp;quot;tiesamp;quot;:{amp;quot;startColoramp;quot;:amp;quot;#282D3Bamp;quot;,amp;quot;endColoramp;quot;:amp;quot;#282D3Bamp;quot;}}}" match-type="[amp;quot;gameType9amp;quot;,amp;quot;gameType13amp;quot;]" headers-labels="{amp;quot;pointsamp;quot;:amp;quot;Pointsamp;quot;,amp;quot;statsamp;quot;:{amp;quot;winsamp;quot;:{amp;quot;labelamp;quot;:amp;quot;Winsamp;quot;,amp;quot;descriptionamp;quot;:amp;quot;Winsamp;quot;},amp;quot;lossesamp;quot;:{amp;quot;labelamp;quot;:amp;quot;Lossesamp;quot;,amp;quot;descriptionamp;quot;:amp;quot;Lossesamp;quot;},amp;quot;tiesamp;quot;:{amp;quot;labelamp;quot;:amp;quot;Drawsamp;quot;,amp;quot;descriptionamp;quot;:amp;quot;Drawsamp;quot;}}}" division-labels="{amp;quot;titleamp;quot;:amp;quot;Division Rankingamp;quot;,amp;quot;currentDivisionTitleamp;quot;:amp;quot;Current Divisionamp;quot;,amp;quot;nextDivisionTitleamp;quot;:amp;quot;Points To Next Divisionamp;quot;,amp;quot;seasonsamp;quot;:amp;quot;Seasonamp;quot;,amp;quot;recordamp;quot;:amp;quot;Recordamp;quot;,amp;quot;pointsamp;quot;:amp;quot;Pointsamp;quot;,amp;quot;gamesPlayedamp;quot;:amp;quot;Games Playedamp;quot;,amp;quot;gamesRemainingamp;quot;:amp;quot;Games Remainingamp;quot;,amp;quot;divisionImgBaseUrlamp;quot;:amp;quot;https://media.contentapi.ea.com/content/dam/eacom/fifa/pro-clubs/divisioncrestamp;quot;,amp;quot;statsamp;quot;:{amp;quot;winsamp;quot;:amp;quot;Wamp;quot;,amp;quot;lossesamp;quot;:amp;quot;Lamp;quot;,amp;quot;tiesamp;quot;:amp;quot;Damp;quot;}}" progressbar-labels="{amp;quot;divamp;quot;:amp;quot;Divamp;quot;,amp;quot;promotionamp;quot;:amp;quot;Promotionamp;quot;,amp;quot;relegationamp;quot;:amp;quot;Relegationamp;quot;,amp;quot;titleamp;quot;:amp;quot;Titleamp;quot;}" members-labels="{amp;quot;titleamp;quot;:amp;quot;Membersamp;quot;,amp;quot;linkTextamp;quot;:amp;quot;View All Membersamp;quot;,amp;quot;linkUrlamp;quot;:amp;quot;membersamp;quot;,amp;quot;totalTitleamp;quot;:amp;quot;Total Membersamp;quot;,amp;quot;totalCountsLabelamp;quot;:amp;quot;Totalamp;quot;,amp;quot;memberDetailsamp;quot;:{amp;quot;proOverallamp;quot;:amp;quot;Overall Ratingamp;quot;,amp;quot;ratingAveamp;quot;:amp;quot;Average Match Ratingamp;quot;,amp;quot;gamesPlayedamp;quot;:amp;quot;Games Playedamp;quot;},amp;quot;memberPositionamp;quot;:{amp;quot;defenderamp;quot;:amp;quot;Defenderamp;quot;,amp;quot;forwardamp;quot;:amp;quot;Forwardamp;quot;,amp;quot;goalkeeperamp;quot;:amp;quot;Goalkeeperamp;quot;,amp;quot;midfielderamp;quot;:amp;quot;Midfielderamp;quot;},amp;quot;positionsamp;quot;:{amp;quot;defenderamp;quot;:amp;quot;Defendersamp;quot;,amp;quot;forwardamp;quot;:amp;quot;Forwardsamp;quot;,amp;quot;goalkeeperamp;quot;:amp;quot;Goalkeepersamp;quot;,amp;quot;midfielderamp;quot;:amp;quot;Midfieldersamp;quot;},amp;quot;defaultMemberAvataramp;quot;:amp;quot;https://media.contentapi.ea.com/content/dam/ea/fifa/fifa-21/pro-clubs/common/pro-clubs/avatar.pngamp;quot;}" match-labels="{amp;quot;titleamp;quot;:amp;quot;Last Matchamp;quot;,amp;quot;linkTextamp;quot;:amp;quot;View All Match Historyamp;quot;,amp;quot;linkUrlamp;quot;:amp;quot;match-historyamp;quot;,amp;quot;altTitleamp;quot;:amp;quot;No match data was foundamp;quot;}" trophies-labels="{amp;quot;titleamp;quot;:amp;quot;Trophiesamp;quot;,amp;quot;cupsLabelamp;quot;:{amp;quot;leaguesWonamp;quot;:amp;quot;Leagues Wonamp;quot;,amp;quot;titlesWonamp;quot;:amp;quot;Titles Wonamp;quot;,amp;quot;totalCupsWonamp;quot;:amp;quot;Total Cups Wonamp;quot;},amp;quot;cupsImgamp;quot;:{amp;quot;leaguesWonImgUrlamp;quot;:amp;quot;https://media.contentapi.ea.com/content/dam/ea/fifa/fifa-21/pro-clubs/common/pro-clubs/league-titles-21.pngamp;quot;,amp;quot;titlesWonImgUrlamp;quot;:amp;quot;https://media.contentapi.ea.com/content/dam/ea/fifa/fifa-21/pro-clubs/common/pro-clubs/all-tiles-21.pngamp;quot;,amp;quot;totalCupsWonImgUrlamp;quot;:amp;quot;https://media.contentapi.ea.com/content/dam/ea/fifa/fifa-21/pro-clubs/common/pro-clubs/cups-won-21.pngamp;quot;}}" history-labels="{amp;quot;titleamp;quot;:amp;quot;Club Historyamp;quot;,amp;quot;subTitleamp;quot;:amp;quot;Overall Recordamp;quot;,amp;quot;ptsamp;quot;:amp;quot;Pointsamp;quot;,amp;quot;divisionamp;quot;:amp;quot;Divisionamp;quot;,amp;quot;historyDetailsamp;quot;:{amp;quot;seasonsamp;quot;:amp;quot;Seasons Playedamp;quot;,amp;quot;totalGamesamp;quot;:amp;quot;Total Gamesamp;quot;,amp;quot;titlesWonamp;quot;:amp;quot;Titles Wonamp;quot;,amp;quot;bestPointsamp;quot;:amp;quot;Highest Points Totalamp;quot;,amp;quot;promotionsamp;quot;:amp;quot;Promotionsamp;quot;,amp;quot;relegationsamp;quot;:amp;quot;Relegationsamp;quot;},amp;quot;statsamp;quot;:{amp;quot;winsamp;quot;:amp;quot;Winsamp;quot;,amp;quot;lossesamp;quot;:amp;quot;Lossesamp;quot;,amp;quot;tiesamp;quot;:amp;quot;Drawsamp;quot;},amp;quot;statsShortamp;quot;:{amp;quot;winsamp;quot;:amp;quot;Wamp;quot;,amp;quot;lossesamp;quot;:amp;quot;Lamp;quot;,amp;quot;tiesamp;quot;:amp;quot;Damp;quot;},amp;quot;progressBaramp;quot;:{amp;quot;titleamp;quot;:amp;quot;Best Season Finishamp;quot;,amp;quot;tipLabelamp;quot;:amp;quot;DIVamp;quot;,amp;quot;startColoramp;quot;:amp;quot;#9B7801amp;quot;,amp;quot;endColoramp;quot;:amp;quot;#F9F1A5amp;quot;,amp;quot;divisionBaseUrlamp;quot;:amp;quot;https://media.contentapi.ea.com/content/dam/eacom/fifa/pro-clubs/divisioncrestamp;quot;}}" translations="{amp;quot;4543827amp;quot;:amp;quot;East Coast USamp;quot;,amp;quot;5723475amp;quot;:amp;quot;West Coast USamp;quot;,amp;quot;5719381amp;quot;:amp;quot;Western Europeamp;quot;,amp;quot;4539733amp;quot;:amp;quot;Eastern Europeamp;quot;,amp;quot;5129557amp;quot;:amp;quot;Northern Europeamp;quot;,amp;quot;5457237amp;quot;:amp;quot;Southern Europeamp;quot;,amp;quot;4344147amp;quot;:amp;quot;British Islesamp;quot;,amp;quot;5456205amp;quot;:amp;quot;South Americaamp;quot;,amp;quot;4407629amp;quot;:amp;quot;Central Americaamp;quot;,amp;quot;4281153amp;quot;:amp;quot;Asiaamp;quot;,amp;quot;4281683amp;quot;:amp;quot;Australia / New Zealandamp;quot;}" crest-base-url="https://fifa21.content.easports.com/fifa/fltOnlineAssets/05772199-716f-417d-9fe0-988fa9899c4d/2021/fifaweb/crests/256x256/l" custom-crest-base-url="https://fifa21.content.easports.com/fifa/fltOnlineAssets/05772199-716f-417d-9fe0-988fa9899c4d/2021/fifaweb/crests/256x256/l" default-crest-url="https://media.contentapi.ea.com/content/dam/ea/fifa/fifa-21/pro-clubs/common/pro-clubs/crest-default.png" loading-image="https://media.contentapi.ea.com/content/dam/eacom/fifa/pro-clubs/loading-animation.png" default-club-name="Disbanded"></ea-proclub-overview>
 

Фактический результат

 -- Too much post but it all of the HTML amp; XML
 

Ниже приведен фрагмент всего ответа от искателя $при сбросе с помощью dd().
https://pastebin.com/qxUTpu9p

Ответ №1:

Согласно документации:

 $customCrestBaseUrl = $crawler
    ->filter('ea-proclub-overview')
    ->first()
    ->extract(['custom-crest-base-url'])
;
 

Комментарии:

1. идеально!! спасибо, Энрико 🙂