From 9e5a94b43164d1c94083aae0d06cf24b88c4dba9 Mon Sep 17 00:00:00 2001 From: Clement Date: Mon, 27 Jul 2020 12:46:20 +0200 Subject: [PATCH] :sparkles: Ajoute le parser Ouest-France Fix #11 --- app/Parser.php | 6 ++---- app/Parser/OuestFrance.php | 43 ++++++++++++++++++++++++++++++++++++++ config/parser.php | 8 ++++--- 3 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 app/Parser/OuestFrance.php diff --git a/app/Parser.php b/app/Parser.php index f0c4489..33ba921 100644 --- a/app/Parser.php +++ b/app/Parser.php @@ -2,9 +2,7 @@ namespace App; -use App\Parser\LBC; -use App\Parser\Pap; -use App\Parser\SeLoger; +use GuzzleHttp\Client; use Illuminate\Support\Facades\Config; abstract class Parser @@ -15,7 +13,7 @@ abstract class Parser protected function __construct($url) { $this->url = $url; - $this->client = new \GuzzleHttp\Client([ + $this->client = new Client([ 'timeout' => 60, 'verify' => false, 'headers' => [ diff --git a/app/Parser/OuestFrance.php b/app/Parser/OuestFrance.php new file mode 100644 index 0000000..1ef14b5 --- /dev/null +++ b/app/Parser/OuestFrance.php @@ -0,0 +1,43 @@ +client->get($this->url); + $body = $request->getBody()->getContents(); + $crawler = new Crawler($body); + $parsedHome = new ParsedHome(); + $parsedHome->title = $crawler->filter('h1')->text(); + $parsedHome->price = (int)$crawler->filter('#strongPrix')->text(); + $parsedHome->description = $crawler->filter('#blockonDescriptif')->text(); + $details = $crawler->filter('#blocCaractAnn > ul > li'); + $parsedHome->surface = (int)$details->eq(2)->filter('strong')->text(); + $parsedHome->garden_surface = (int)$details->eq(3)->filter('strong')->text(); + $parsedHome->rooms = (int)$details->eq(4)->filter('strong')->text(); + $parsedHome->energy = $crawler->filter('#dpeCateg > strong')->text(); +// $parsedHome->city = ? +// $parsedHome->map = ? + $parsedHome->pictures = $crawler->filter('#slider > noscript > .slides > li')->each(static function(Crawler $node, $i) { + if ($node->children('img')) { + return $node->children('img')->attr('src'); + } + + return null; + }); + + return $parsedHome; + } +} diff --git a/config/parser.php b/config/parser.php index e89a5a7..1007521 100644 --- a/config/parser.php +++ b/config/parser.php @@ -1,13 +1,15 @@ [ - 'leboncoin.fr' => LBC::class, - 'seloger.com' => SeLoger::class, - 'pap.fr' => Pap::class, + 'leboncoin.fr' => LBC::class, + 'seloger.com' => SeLoger::class, + 'pap.fr' => Pap::class, + 'ouestfrance-immo.com' => OuestFrance::class, ], ];