🎉 Hello world
This commit is contained in:
52
app/Parser.php
Normal file
52
app/Parser.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use App\Parser\LBC;
|
||||
use App\Parser\Pap;
|
||||
use App\Parser\SeLoger;
|
||||
|
||||
abstract class Parser
|
||||
{
|
||||
protected $client;
|
||||
protected $url;
|
||||
|
||||
protected function __construct($url)
|
||||
{
|
||||
$this->url = $url;
|
||||
$this->client = new \GuzzleHttp\Client([
|
||||
'timeout' => 60,
|
||||
'verify' => false,
|
||||
'headers' => [
|
||||
'user-agent' => 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; D5803 Build/MOB30M.Z1)',
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $url
|
||||
*
|
||||
* @return \App\Parser|null
|
||||
*/
|
||||
public static function factory(string $url)
|
||||
{
|
||||
if (false !== strpos($url, 'leboncoin.fr')) {
|
||||
return new LBC($url);
|
||||
}
|
||||
|
||||
if (false !== strpos($url, 'seloger.com')) {
|
||||
return new SeLoger($url);
|
||||
}
|
||||
|
||||
if (false !== strpos($url, 'pap.fr')) {
|
||||
return new Pap($url);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \App\ParsedHome
|
||||
*/
|
||||
abstract public function parse(): ParsedHome;
|
||||
}
|
Reference in New Issue
Block a user