Automationn init...

This commit is contained in:
최준흠 2024-09-03 19:45:22 +09:00
parent ca0a0a57ad
commit 8b3c16ccaf
2 changed files with 12 additions and 13 deletions

View File

@ -7,7 +7,7 @@ use App\Libraries\YamapLibrary;
class Crawler extends BaseController class Crawler extends BaseController
{ {
public function yamap(...$params) public function yamap(...$params): bool
{ {
try { try {
$isDebug = in_array("debug", $params); $isDebug = in_array("debug", $params);
@ -15,7 +15,11 @@ class Crawler extends BaseController
$library->setDebug($isDebug); $library->setDebug($isDebug);
//1. MainPage //1. MainPage
$url = getenv("yamap.url.main"); $url = getenv("yamap.url.main");
$links = $library->getLinksByMainPage($url); $crawler = $library->getCrawlerByMainPage($url);
$links = $library->getLinks($crawler,);
if (!count($links)) {
throw new \Exception("Target Links가 없습니다.");
}
//2. TargetPage : div.contents 가진 객체를 찾아서 첫번쨰 요소에서만 참조 //2. TargetPage : div.contents 가진 객체를 찾아서 첫번쨰 요소에서만 참조
$url = !in_array("debug", $params) ? getenv("yamap.url.test") : $links[0]["href"]; $url = !in_array("debug", $params) ? getenv("yamap.url.test") : $links[0]["href"];
$crawler = $library->getCrawlerByDetailPage($url); $crawler = $library->getCrawlerByDetailPage($url);

View File

@ -20,7 +20,7 @@ class YamapLibrary
$this->_host = $host; $this->_host = $host;
} }
public function getMyWeb() public function getMyWeb(): MyWebLibrary
{ {
if ($this->_web === null) { if ($this->_web === null) {
$this->_web = new MyWebLibrary($this->getHost()); $this->_web = new MyWebLibrary($this->getHost());
@ -28,7 +28,7 @@ class YamapLibrary
} }
return $this->_web; return $this->_web;
} }
public function getMyStorage() public function getMyStorage(): MyStorageLibrary
{ {
if ($this->_storage === null) { if ($this->_storage === null) {
$this->_storage = new MyStorageLibrary(); $this->_storage = new MyStorageLibrary();
@ -36,7 +36,7 @@ class YamapLibrary
} }
return $this->_storage; return $this->_storage;
} }
public function getMyCrawler() public function getMyCrawler(): MyCrawlerLibrary
{ {
if ($this->_crawler === null) { if ($this->_crawler === null) {
$this->_crawler = new MyCrawlerLibrary(); $this->_crawler = new MyCrawlerLibrary();
@ -96,7 +96,7 @@ class YamapLibrary
} }
// 파일 다운로드 메서드 // 파일 다운로드 메서드
final public function download($url) final public function download($url): bool
{ {
try { try {
$fileNames = explode('/', $url); $fileNames = explode('/', $url);
@ -130,15 +130,10 @@ class YamapLibrary
} }
} }
public function getLinksByMainPage(string $url): array public function getCrawlerByMainPage(string $url): Crawler
{ {
$html = $this->getMyWeb()->getContent($url);; $html = $this->getMyWeb()->getContent($url);;
$crawler = $this->getMyCrawler()->createCrawler($html)->filter("div.bbs_list")->first();; return $this->getMyCrawler()->createCrawler($html)->filter("div.bbs_list")->first();
$links = $this->getLinks($crawler,);
if (!count($links)) {
throw new \Exception("Target Links가 없습니다.");
}
return $links;
} }
public function getCrawlerByDetailPage(string $url): Crawler public function getCrawlerByDetailPage(string $url): Crawler
{ {