일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 웹솔루션
- happycgi
- #웹솔루션
- 쇼핑몰
- 홈페이지제작
- #image
- #jQuery
- #쇼핑몰
- #해피CGI
- #CSS
- CSS
- #홈페이지
- #솔루션
- 게시판
- 해피씨지아이
- #이미지
- jquery
- #happycgi
- 솔루션
- php
- #업종별
- 해피CGI
- 홈페이지
- #동영상
- #뉴스
- 사이트제작
- #cgimall
- #홈페이지제작
- CGIMALL
- javascript
- Today
- Total
웹솔루션개발 22년 노하우! 해피CGI의 모든것
[해피CGI][cgimall] Snoopy 를 이용한 크롤러 본문
안녕하세요 이번에 소개해 드릴 자료는 Snoopy 를 이용한 사이트 크롤링 입니다.
첨부된 압축파일을 해제하시면 Snoopy
폴더와 index.php 파일이 있습니다.
Snoopy 사용방법에 대해서 먼저 설명합니다.
자 그럼 Snoopy 를 include 합니다.
include
('/설치경로/Snoopy/Snoopy.class.php');
(설치경로는 사용자 마다 다르기 때문에 알아서 수정하시기
바랍니다.)
이번엔 클래스를 생성 합니다.
$snoopy = new
Snoopy;
그리고 사이트를 호출하여 정보를 출력해
볼께요.
$snoopy->fetch('http://www.naver.com');
결과물을
이미지로 한번 보죠.
제 PC에 설치된 Ubuntu 서버를 이용하여 로컬 환경을 구축했습니다.
PC 에 Ubuntu 설치하는 방법이 궁금하시면 아래의 링크를
클릭하세요.
[ windows 10에 Ubuntu
설치하자 ]
크롤링을 하려면 먼저 반복된 패턴이 필요 합니다.
예를 들면 html
태그 중 반복된 class 명이 있다거나 id 값이 있다거나 할 경우를 찾으시면 됩니다.
제가 좋아하는 낚시에 대해서 크롤링 예를
들어 보겠습니다.
지마켓의 특정 낚시 카테고리를 페이지를 예로 들겠습니다.
http://category.gmarket.co.kr/listview/List.aspx?gdmc_cd=200002448&ecp_gdlc=&ecp_gdmc=
html
소스를 보면 아래와 같은 규칙을 가지고 있습니다.
다른 리스트들과 중복되지 않는 값을 찾아야 하는데요.
<ul class="item_list type_list"
id="searchListItems">
searchListItems 가 중복되지 않는 키 포인트가
되겠네요.
아이템을 가져오고 싶다면 ...
$snoopy->fetch('http://category.gmarket.co.kr/listview/List.aspx?gdmc_cd=200002448&ecp_gdlc=&ecp_gdmc=');
preg_match('/<ul
class=\"item_list type_list\" id=\"searchListItems\">(.*?)<\/ul>/is',
iconv("euc-kr","utf-8",$snoopy->results),
$product_list);
print_r($product_list); //결과물 출력
위의 코드처럼
searchListItems을 이용하여
preg_match 하시면 원하시는 결과물을 가져올 수 있습니다.
첨부해 드린 코드보다 사용하기 좋거나 편한 것들도 많습니다.
그러나 한번쯤은 이런식으로 만들어서 사용해 보는것도 괜찮을듯 하여 ...
파일을 첨부하니 참고 해 주시구요.
여기서 부터는 응용하시면 점점 발전하는 크롤러를 만드실 수 있습니다. ^^*
'웹프로그램밍 자료실 > PHP 자료' 카테고리의 다른 글
[해피CGI][cgimall] PHP SysInfo Ver3.2.10 (0) | 2018.11.01 |
---|---|
[해피CGI][cgimall] Adminer Ver4.6.2 (0) | 2018.09.20 |
[해피CGI][cgimall] php To PDF (0) | 2018.08.14 |
[해피CGI][cgimall] 웹사이트 스크린샷 PHP 클래스 (0) | 2018.07.12 |
[해피CGI][cgimall] e107 CMS Ver2.1.7 (0) | 2018.07.03 |