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
{
log_message("debug", __FUNCTION__ . "-> " . $url . "\n");
$html = $this->getContentByMyWeb($url);
return $this->createByMyCrawler($html)->filter($tag);
$response = $this->getContentByMyWeb($url);
if (!$response) {
throw new \Exception("getCrawler 실패:{$url}");
}
return $this->createByMyCrawler($response)->filter($tag);
}
public function getListURLs(

View File

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