Chillax in dev

[PHP] 롯데온 상세페이지 크롤링하기 본문

PHP

[PHP] 롯데온 상세페이지 크롤링하기

Seong Story 2025. 4. 8. 10:09

[PHP] 롯데온 상세페이지 크롤링하기

롯데온 상품 상세페이지 내용을 크롤링을 통해 가져와 저장하는 로직을 살펴봅니다. 

 

getProductDetail() PHP 함수를 만들어서 상세 정보를 가져와봅니다. 

 

// iframe 으로 묶여있는 상세페이지를 크롤링합니다.
	public function getProductDetail($cnt){
		ini_set("allow_url_fopen",1); //php 내부 설정으로 URL을 통해 파일을 열 수 있도록 허용합니다. 이는 외부 URL에서 데이터를 가져오는 데 필요합니다.
		
		$url = "https://llis-goodsdetail.lotteon.com/goodsdetail?model=itemdetail".$cnt; // 상세페이지 url을 가져옵니다. 예시는 롯데온의 상품상세입니다.
		
		require_once APPPATH . "/third_party/simplehtmldom/simple_html_dom.php"; //simple_html_dom.php 파일을 포함합니다. 이 파일은 HTML을 쉽게 파싱하고 조작할 수 있도록 도와주는 라이브러리입니다.
		
		$data = file_get_html($url); //file_get_html 함수를 사용하여 위에서 생성한 URL의 HTML 내용을 가져와 $data 변수에 저장합니다.
		
		$content = $data->find("div#llis-root"); //$data에서 div 태그 중 id가 llis-root인 요소를 찾아 $content 변수에 저장합니다. 이 요소는 상품 상세 정보가 포함된 부분입니다.
		
		//$content의 요소 개수가 1개인지 확인합니다. 즉, div#llis-root가 정확히 하나만 존재하는지 체크합니다.
		if(count($content) == 1){
			$return = '';
			foreach($content as $key => $row){
				$return .= $row->innertext; //현재 요소의 내부 HTML 내용을 $return 문자열에 추가합니다.
			}
			return $return;
		}else{
			return false;
		}
	}

 

 

크롤링할 롯데온의 태그 구조를 살펴봅니다.

뒤 $cnt 부분은 롯데온 api를 통해 확인 가능합니다.

 

태그 구조에 맞게 $content = $data->find("div#llis-root"); 부분을 설정해서 가져옵니다. 

 

php를 통해 크롤링 데이터를 가져와 필요한 부분을 $return에 저장해 string으로 가져오는 로직이었습니다. 

감사합니다.

728x90
LIST
Comments