Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 톰캣 9.0 설치
- 웹에 데이터를 전송하는 방법
- 이클립스 프로젝트 변경
- DDL
- github
- php
- scanner 연습문제
- 이클립스
- 자바스크립트
- 코드 처리 시간
- [Eclipse] 이클립스 마켓플레이스 (Marketplace) 사용방법
- CMD
- PLSQL 설치
- php 날자 함수
- strtotime()
- 개발 일기
- 코드이그나이터
- ER 마스터 사용법
- js
- Nexacro
- id 체크
- 자바
- 기초 HTML
- 이클립스 서버연동
- oracle datatype
- 코드 정리
- Oracle
- 오라클 초기 셋팅
- 실행파일만들기
- 자동 배포
Archives
- Today
- Total
Chillax in dev
[PHP] 롯데온 상세페이지 크롤링하기 본문
[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
'PHP' 카테고리의 다른 글
PHP에서 현재 날짜와 시간을 특정 형식으로 출력하기 (0) | 2025.04.03 |
---|---|
[PHP] 함수 vs 메소드 의 차이? (1) | 2024.06.21 |
[PHP] 코드이그나이터 _remap 메소드의 역할 (0) | 2024.06.21 |
[PHP] 코드이그나이터에서 특정 IP만 코드 적용시키기 (0) | 2024.06.11 |
[PHP] defined('BASEPATH') OR exit('NO direct script access allowed'); (0) | 2024.06.11 |
Comments