Automationn init...

This commit is contained in:
최준흠 2024-09-04 19:29:52 +09:00
parent 749c691e11
commit 14e4fc5d47
2 changed files with 40 additions and 56 deletions

View File

@ -28,9 +28,11 @@ class YamapLibrary
public function getCrawler(string $url, string $tag): Crawler public function getCrawler(string $url, string $tag): Crawler
{ {
log_message("debug", __FUNCTION__ . "-> " . $url . "\n"); $response = $this->getContentByMyWeb($url);
$html = $this->getContentByMyWeb($url); if (!$response) {
return $this->createByMyCrawler($html)->filter($tag); throw new \Exception("getCrawler 실패:{$url}");
}
return $this->createByMyCrawler($response)->filter($tag);
} }
public function getListURLs( public function getListURLs(

View File

@ -37,11 +37,11 @@ trait MyWebTrait
} }
//url에 http 나 https가 포함되어 있으면 true //url에 http 나 https가 포함되어 있으면 true
final protected function isContainsHttpOrHttpsByMyWeb($url) final protected function isContainsHttpOrHttpsByMyWeb($url): bool
{ {
return strpos($url, 'http://') !== false || strpos($url, 'https://') !== false; return strpos($url, 'http://') !== false || strpos($url, 'https://') !== false;
} }
final protected function getContentByMyWeb(string $url, array $options = []) final protected function getContentByMyWeb(string $url, array $options = []): string
{ {
//url에 http 나 https가 포함되어 있지않으면 //url에 http 나 https가 포함되어 있지않으면
if (!($this->isContainsHttpOrHttpsByMyWeb($url))) { if (!($this->isContainsHttpOrHttpsByMyWeb($url))) {
@ -49,16 +49,14 @@ trait MyWebTrait
} }
$response = $this->getClientByMyWeb()->get($url, $options); $response = $this->getClientByMyWeb()->get($url, $options);
if ($response->getStatusCode() != 200) { if ($response->getStatusCode() != 200) {
log_message("error", "{$url} 접속실패: " . $response->getStatusCode()); throw new \Exception("error", "{$url} 접속실패: " . $response->getStatusCode());
return false;
} }
return $response->getBody()->getContents(); return $response->getBody()->getContents();
} }
// 로그인 메서드 // 로그인 메서드
final protected function loginByMyWeb($url, $username, $password) final protected function loginByMyWeb($url, $username, $password): void
{ {
try {
$response = $this->getClientByMyWeb()->post($this->gethost() . $url, [ $response = $this->getClientByMyWeb()->post($this->gethost() . $url, [
'form_params' => [ 'form_params' => [
'username' => $username, 'username' => $username,
@ -66,23 +64,14 @@ trait MyWebTrait
], ],
'cookies' => $this->getCookieJar(), 'cookies' => $this->getCookieJar(),
]); ]);
if ($response->getStatusCode() == 200) { if ($response->getStatusCode() != 200) {
log_message("info", "로그인 성공!"); throw new \Exception("info", "로그인 실패: " . $response->getStatusCode());
return true;
} else {
log_message("info", "로그인 실패: " . $response->getStatusCode());
return false;
}
} catch (\Exception $e) {
log_message("error", "로그인 중 오류 발생: " . $e->getMessage());
return false;
} }
} }
// 파일 다운로드 메서드 // 파일 다운로드 메서드
final protected function downloadByMyWeb(string $url, string $fullPath, bool $debug = false): bool final protected function downloadByMyWeb(string $url, string $fullPath, bool $debug = false)
{ {
try {
log_message("debug", "donwload:URL-> " . $url); log_message("debug", "donwload:URL-> " . $url);
$fileNames = explode('/', $url); $fileNames = explode('/', $url);
if (!is_array($fileNames) || !count($fileNames)) { if (!is_array($fileNames) || !count($fileNames)) {
@ -102,17 +91,10 @@ trait MyWebTrait
// 'sink' => $savePath, // 'sink' => $savePath,
]); ]);
if (!$response) { if (!$response) {
log_message("info", "{$fileName} 파일 다운로드 실패"); throw new \Exception("info", "{$fileName} 파일 다운로드 실패");
return false;
} }
$this->saveByMyStorage($savePath, $response); $this->saveByMyStorage($savePath, $response);
log_message("info", "{$fileName} 파일이 다운로드되었습니다!"); log_message("info", "{$fileName} 파일이 다운로드되었습니다!");
return true;
}
return true;
} catch (\Exception $e) {
log_message("error", "다운로드 중 오류 발생: " . $e->getMessage());
return false;
} }
} }
} }