PHP 컬렉션 스누피에 대한 자세한 설명
PHP 컬렉션 도구 스누피 애플리케이션에 대한 자세한 설명
스누피는 브라우저의 기능을 시뮬레이션하고 웹 콘텐츠를 가져오고 양식을 보낼 수 있는 PHP 클래스입니다. 스누피가 올바르게 작동하려면 서버의 PHP 버전이 4 이상이어야 하며 기본 LAMP 서비스에서 지원되는 PCRE(Perl Compatible Regular Expressions)를 지원해야 합니다.
1. 스누피의 일부 기능:
1. 웹페이지의 콘텐츠 가져오기
2. 웹페이지의 텍스트 콘텐츠 가져오기(HTML 태그 제거) fetchtext
3. 링크 가져오기 및 웹페이지 fetchlinks fetchform 형식
4. 프록시 호스트 지원
5. 기본 사용자 이름/비밀번호 확인 지원
6. user_agent, 리퍼러(소스), 쿠키 및 헤더 콘텐츠(헤더 파일) 설정 지원
7 .브라우저 리디렉션 지원 및 리디렉션 깊이 제어 가능
8. 웹 페이지의 링크를 고품질 URL로 확장 가능(기본값)
9. 데이터 제출 및 반환 값 얻기
10. 지원 추적 HTML 프레임워크
11. 리디렉션 시 쿠키 전달을 지원합니다. PHP4 이상이 필요하며, 서버가 컬을 지원하지 않는 경우 지원을 확장할 필요가 없습니다.
2. 클래스 메소드:
fetch($URI)
————–
웹페이지의 내용을 캡처하는 데 사용되는 메소드입니다. $URI 매개변수는 크롤링된 웹페이지의 URL 주소입니다. 가져온 결과는 $this->results에 저장됩니다. 프레임을 스크랩하는 경우 스누피는 각 프레임을 추적하여 배열에 저장한 다음 $this->results에 저장합니다.
fetchtext($URI)
——————
이 메서드는 fetch()와 유사하지만 유일한 차이점은 이 메서드가 HTML 태그 및 기타 관련 없는 데이터를 제거하고 텍스트 내용만 반환한다는 것입니다. 웹페이지에서.
fetchform($URI)
——————
이 메서드는 fetch()와 유사하지만 유일한 차이점은 이 메서드가 HTML 태그 및 기타 관련 없는 데이터를 제거하고 형식만 반환한다는 것입니다. 웹페이지의 콘텐츠(양식)입니다.
fetchlinks($URI)
————-
이 메서드는 fetch()와 유사하지만 유일한 차이점은 이 메서드가 HTML 태그 및 기타 관련 없는 데이터를 제거하고 다음의 링크만 반환한다는 것입니다. 웹페이지(링크).
기본적으로 상대 링크는 자동으로 완성되어 전체 URL로 변환됩니다.
submit($URI,$formvars)
————————-
이 메소드는 $URL에 지정된 링크 주소로 확인 양식을 보냅니다. $formvars는 양식 매개변수를 저장하는 배열입니다.
submittext($URI,$formvars)
————————–
이 메서드는 submit()과 유사하지만 유일한 차이점은 이 메서드가 HTML 태그 및 기타 관련 없는 데이터를 제거한다는 것입니다. . 로그인 후 웹페이지의 텍스트 내용만 반환됩니다.
submitlinks($URI)
————-
이 메소드는 submit()과 유사하지만 유일한 차이점은 이 메소드가 HTML 태그 및 기타 관련 없는 데이터를 제거하고 다음의 링크만 반환한다는 것입니다. 웹페이지(링크).
기본적으로 상대 링크는 자동으로 완성되어 완전한 URL로 변환됩니다.
3. 클래스 속성: (기본값은 대괄호 안에 있음)
$host 연결된 호스트
$port 연결된 포트
$proxy_host 사용된 프록시 호스트(있는 경우)
$ Proxy_port 프록시 사용된 호스트 포트(있는 경우)
$agent 사용자 에이전트 위장(Snoopy v0.1)
$referer 소스 정보(있는 경우)
$cookies 쿠키(있는 경우)
$rawheaders 기타 헤더 정보(있는 경우)
$maxredirs 최대 리디렉션 수, 0=허용되지 않음(5)
$offsiteok 오프사이트 리디렉션을 허용할지 여부(true)
$expandlinks 전체 주소에 대한 모든 링크를 완료할지 여부(true) )
$user 인증 사용자 이름(사용 가능한 경우)
$pass 인증 사용자 이름(사용 가능한 경우)
$accept http 허용 유형( image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */ *)
$error 오류를 보고할 위치(있는 경우)
$response_code 서버에서 반환된 응답 코드
$headers 서버에서 반환된 헤더 정보
$maxlength 반환된 가장 긴 데이터 길이
$read_timeout 읽기 작업 시간 초과(PHP 4 Beta 4+ 필요)
시간 초과가 없는 경우 0으로 설정
$timed_out 한 번 읽으면 가져오기 작업 시간이 초과되면 이 속성은 true를 반환합니다(PHP 4 Beta 4+ 필요).
$maxframes 추적이 허용되는 최대 프레임 수
$status 캡처된 http 상태
$temp_dir 웹 서버가 쓸 수 있는 임시 파일 디렉터리(/tmp)
$curl_path cURL 바이너리 디렉터리 , cURL 바이너리가 없으면 false로 설정하세요.
4. 다음은 데모입니다.
include "Snoopy.class.php"
$snoopy = new Snoopy-> ;proxy_host = "www.baidu.com";
$snoopy->proxy_port = "8080";
$snoopy->agent = "(호환; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98 )";
$snoopy->referer = "http://www.baidu.com/";
$snoopy->cookies["SessionID" ] = 238472834723489l;
$snoopy->cookies["favoriteColor"] = "빨간색";
$snoopy->rawheaders["Pragma"] = "캐시 없음";
$snoopy->maxredirs = 2;
$snoopy->offsiteok = false;
$snoopy->expandlinks = false;
$snoopy->user = "조";
$snoopy->pass = "블로이";
if($snoopy->fetchtext("http://www.baidu.com"))
{
echo "
".htmlspecialchars($snoopy->results). "n";