마스터욱
Toggle navigation
  • 회원가입 | 정보찾기
ICON NAVIGATION
정보수정 쪽지함 주변맛집 익명채팅
공지사항 채팅 개발문의 방명록
  • MAIN NAVIGATION
  • 메인
  • 마스터욱 공간
    • 마스터욱 소개
    • 개발 리스트
    • 공지사항
    • 방명록
  • 마스터욱 외부자료
    • 네이버
    • 티스토리
    • 깃허브(github)
  • 개인 프로젝트
    • 랜덤 이성 채팅
    • Auto 크롤링
    • Javascript 카카오 채팅
    • 파이썬 뉴스매매
    • C# 키움 주식 자동매매
    • C# 키움 주식 패턴 분석
    • PHP 욱보드
    • 업비트 자동매매 개발
    • 업비트 자동매매 일지
  • 개발 의뢰
    • 개발 문의
    • 개발 견적
    • 개발 피드백
    • FAQ
  • 개발 경험 Tip
    • PHP
    • JSP
    • HTML
    • Javascript
    • Android
    • C#
    • MySQL
    • Linux
    • Python
    • NodeJS
    • React
    • Vue.js
    • Flutter
    • 정규식
    • 기타
  • 커뮤니티
    • 자유게시판
    • 추천사이트
    • 영화
    • 여행
    • 유머
    • Overseas News
  • 맛집&즐길 거리 탐방
    • 맛집 정보
    • 즐길 거리 정보
    • 내 주위 맛집&즐길 거리
  • 공유 사진
    • 음식
    • 여행
    • 캐릭터
    • 배경
    • 기타
    • 이모티콘
    • 일러스트
  • 놀이터
    • 블록뽀시기
    • 트레이딩뷰
    • 로또 시뮬레이션
    • 쳇쳇 익명 채팅
    • 랜덤 이성 채팅
    • AI 채팅
    • 미니 채팅
    • 바이너리 테스트
    • 마번호 생성기
    • 바카라 시뮬레이션
    • 홀짝점수 테스트
    • 로또 분석기
SITE STATISTICS
  • - 명 현재 접속자
  • 532 명 오늘 방문자
  • 1,712 명 어제 방문자
  • 5,192 명 최대 방문자
  • 701,279 명 전체 방문자
  • 2,571 개 전체 게시물
  • 496 개 전체 댓글수
Facebook Twitter GooglePlus KakaoStory NaverBand
  1. 홈
  2. 수집 프로그램
목록으로

CURL 웹 크롤링 데이터 수집 - 1단계(스누피 사용)

마스터욱 0 247 0 0 2018-11-21 00:15:36

php 크롤링 라이브러리중에 스누피(snoopy) 라는 녀석이 있습니다.

이 스누피 안에 기본적으로 CURL 이 탑재되어 있습니다.

이 스누피를 이용하면 크롤링에 대한 세부옵션을 설정하여 데이터를 긁어올 수 있습니다.

아래 소스를 보시면 별의별 삽질을 한 흔적이 다 있습니다.

 

- 로그인 처리후 긁어오기

- IP가 막힌경우 프록시 서버를 거쳐서 긁어오기

- 쿠키나 세션이 필요한 경우 데이터를 굽고 들어가기

 

클라우드페어(CloudFlare) 서버를 제외하곤 왠만한 사이트는 다 긁어와졌습니다.

아래함수는 일단 게시판의 리스트/상세를 긁어올 목적으로 제작한 함수입니다.

 

function getSiteString_snoopy($url)
{
include_once "../plugin/snoopy/Snoopy.class.php";
$snoopy = new Snoopy();
/*
// 스누피 로그인 처리후 긁어오기
$__s=new snoopy;
$url=긁어올url;
$s[‘account_id’]=“내 아이디”;
$s[‘password’]=“내 비밀번호”;
$__s->submit($url,$s);
$__s->setcookies();
$__s->fetch(“http://www.linkprice.com/AC/index.htm”);
*/
/*
# 로그인 후 긁어오기


# 스누피 이미지 저장하는 샘플
$snoopy->fetch('http://www.8725.com/product/admin/8725_files/');
$f = fopen("./images/a.jpg",'w');
fwrite ($f,$snoopy->results);
fclose ($f);
*/
//$snoopy->proxy_host = "175.118.112.51";
//$snoopy->proxy_port = "80";
//홍콩 202.77.57.124 3128 -0.00s
//홍콩 218.213.166.218 81 0.79s
//홍콩 124.244.77.129 80 1.03s
//홍콩 113.255.49.49 80 1.08s
//홍콩 223.19.212.30 80 1.30s
/*
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->referer = "http://www.jonasjohn.de/";
*/
/*
$snoopy->referer = $url;
$snoopy->cookies["PHPSESSID"] = "umnl57bifigsukev73epoklr86";
$snoopy->cookies["2a0d2363701f23f8a75028924a3af643"] = "MTQxLjEwMS44NC4xMjg";
$snoopy->cookies["__cfduid"] = "d64593d742958b3e1e4babbb13aabceea1456209886";
$snoopy->cookies["_ga"] = "GA1.2.234414765.1456209892";
$snoopy->cookies["_gat"] = "1";
$snoopy->submit($url);
*/
/*
fetch($URI) : 입력받은 주소의 html소스를 텍스트 형식으로 $results에 저장합니다.
fetchlinks($URI) : fetch와 비슷하지만 링크만을 배열의 형태로 $results에 저장합니다. 링크를 타고가야할 필요가 있는 작업에 유용하겠죠?
fetchtext($URI) : fetch와 비슷하지만 스크립트를 제외한 텍스트만 $results에 저장합니다.
fetchform($URI) : fetch와 비슷하지만 폼 부분을 html형식으로 $results에 저장합니다.
submit($URI, $formvars="", $formfiles="") : 폼에 여러 변수를 붙여서 전송 할 수 있습니다. 보통 많은 로그인이 폼으로 이루어지므로 유용하게 사용됩니다.
setcookies() : 종종 쿠키정보를 유지해야하는 경우가 있는데 그럴때 사용합니다.
*/
$parse_url = parse_url($url);
$protocol = $parse_url['scheme']; // http , https
$host = $parse_url['host']; // naver.com
$path = $parse_url['path']; // /data/file/test.jpg
if ( $parse_url['query'] != "" ) {
$path .= "?" . $parse_url['query'];
}
$refer = $protocol . "://" . $host;
//echo "refer = {$refer}";exit;
$snoopy->referer = $refer;
//$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)";
$snoopy->submit($url);
$snoopy->setcookies();
$snoopy->fetch($url);
$result = $snoopy->results;
//$headers = $snoopy->headers;
//print_r($headers);exit;
if ( $result == "" || strpos($result, "CloudFlare") !== false ) {
$result = getSiteString_curl($url);
}
return $result;
}
0
0

목록

Facebook Twitter GooglePlus KakaoStory NaverBand
0 Comments

비밀번호 확인

확인
댓글은 자신을 나타내는 '얼굴'입니다. *^^*
등록
자동등록방지 숫자를 순서대로 입력하세요.

댓글수정


번호 제목 이름 날짜 조회
  • 3
    CURL 웹 크롤링 데이터 수집 - 수집설정화면
    마스터욱
    조회수 203   19-02-07 18:53
    마스터욱
    19-02-07 18:53
    203
  • 2
    CURL 웹 크롤링 데이터 수집 - 1단계(스누피 사용)
    마스터욱
    조회수 248   18-11-21 00:15
    마스터욱
    18-11-21 00:15
    248
  • 1
    CURL 웹 크롤링 데이터 수집 프로그램 일지
    마스터욱
    조회수 193   18-11-18 01:21
    마스터욱
    18-11-18 01:21
    193

Search

개인정보처리방침
마스터욱. All rights reserved.

Close

0 명 접속중
Time Loading...