getIdAnnonceFromUrl($this->url); $url = sprintf('https://ws.pap.fr/immobilier/annonces/%s', (int)$idAnnonce); $request = $this->client->get( $url, [ 'headers' => [ 'X-Device-Gsf' => '36049adaf18ade77', 'User-Agent' => 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; D5803 Build/MOB30M.Z1)', 'Connection' => 'Keep-Alive', 'Accept-Encoding' => 'gzip' ], ] ); $annonce = json_decode($request->getBody()->getContents(), true); $parsedHome = new ParsedHome(); $parsedHome->city = $annonce['_embedded']['place'][0]['title']; //ex: Vente maison 110 m² Tréguier (22220) $parsedHome->title = sprintf('%s %s %s m² %s', ucfirst($annonce['produit']), $annonce['typebien'], $annonce['surface'], $parsedHome->city ); $parsedHome->price = $annonce['prix']; $parsedHome->surface = $annonce['surface']; $parsedHome->rooms = $annonce['nb_pieces']; $parsedHome->energy = $annonce['classe_energie']; $parsedHome->description = $annonce['texte']; $parsedHome->pictures = collect( $annonce['_embedded']['photo'] )->map(static function($photo) { return $photo['_links']['self']['href']; }); $location = $annonce['marker']; $parsedHome->map = ['lat' => $location['lat'], 'lng' => $location['lng']]; return $parsedHome; } function getIdAnnonceFromUrl($url) { //ex: https://www.pap.fr/annonces/maison-treguier-22220-r432301732 return substr(collect(explode('-', collect(array_filter(explode('/', $url)))->last()))->last(), 1); } }