>  기사  >  백엔드 개발  >  PHP는 로그인을 시뮬레이션하고 데이터를 가져옵니다.

PHP는 로그인을 시뮬레이션하고 데이터를 가져옵니다.

巴扎黑
巴扎黑원래의
2016-11-10 09:31:241247검색

cURL은 강력한 PHP 라이브러리입니다. PHP의 cURL 라이브러리를 사용하면 간단하고 효과적으로 웹페이지를 크롤링하고 콘텐츠를 수집할 수 있습니다. Curl은 개발자가 PHP 매뉴얼에서 배울 수 있는 다양한 기능을 제공합니다. cURL에 대한 추가 정보. 이 문서에서는 cURL 사용을 공유하기 위해 오픈 소스 중국(oschina)에 대한 시뮬레이션된 로그인을 예로 들어 설명합니다.

PHP의 컬()은 웹 페이지 크롤링에 상대적으로 효율적이고 멀티스레딩을 지원하는 반면, file_get_contents()는 약간 덜 효율적입니다. 물론 컬을 사용할 때는 컬 확장을 활성화해야 합니다.

코드 연습

먼저 로그인 코드를 살펴보겠습니다:

//시뮬레이트 로그인
function login_post($url, $cookie, $post) {
$curl = 컬_init();//컬 모듈 초기화
컬_setopt($curl, CURLOPT_URL, $url);//제출된 주소 로그인
컬_세톱($curl, CURLOPT_HEADER, 0);//표시 여부 헤더 정보
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//반환된 정보를 자동으로 표시할지 여부
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie) //지정된 파일에 저장될 쿠키 정보 설정
curl_setopt($curl, CURLOPT_POST, 1);//포스트 모드로 제출
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//제출할 정보
curl_exec($curl) ;// cURL 실행
컬_close($curl);//cURL 리소스 닫기 및 시스템 리소스 해제
}

login_post() 함수는 먼저 컬_init()를 초기화한 후 다음을 사용합니다. 제출할 URL 주소, 저장된 쿠키 파일, 게시물 데이터(사용자 이름 및 비밀번호 등), 정보 반환 여부 등을 포함하는 관련 옵션 정보를 설정하기 위해 컬_setopt()를 수행한 후, 컬_exec가 컬을 실행하고 마지막으로 컬_닫기를 수행합니다. ()는 리소스를 해제합니다. PHP 자체의 http_build_query()는 배열을 연결된 문자열로 변환할 수 있습니다.

다음으로 로그인에 성공했다면 로그인 성공 후 페이지 정보를 얻어야 합니다.

//로그인 성공 후 데이터 가져오기
function get_content($url, $cookie) {
$ch =curl_init()
curl_setopt($ch, CURLOPT_URL, $url); cur_close($ch);
return $rs
}


function get_content() 먼저 컬을 초기화한 후 관련 옵션을 설정하고 컬을 실행한 후 리소스를 해제합니다. 그 중 CURLOPT_RETURNTRANSFER를 1로 설정하여 자동으로 정보를 반환하고, CURLOPT_COOKIEFILE은 로그인 시 저장된 쿠키 정보를 읽어 최종적으로 페이지 내용을 반환할 수 있습니다.

우리의 궁극적인 목표는 모의 로그인 후 정보를 얻는 것입니다. 이는 일반 로그인이 성공해야만 얻을 수 있는 유용한 정보입니다. 다음으로, 로그인 성공 후 정보를 캡처하는 방법을 알아보기 위해 Open Source China 모바일 버전에 로그인하는 방법을 예로 들어 보겠습니다.

//게시물 데이터 설정

$post = array (

'email' => 'oschina 계정',

'pwd' => 'oschina 비밀번호',

' goto_page ' => '/my',
'error_page' => '/login',
'save_login' => '1',
'submit' => '지금 로그인'
) ;

//로그인 주소
$url = "http://m.oschina.net/action/user/login"
//쿠키 저장 경로 설정
$cookie = dirname(__FILE__) . '/cookie_oschina.txt';
//로그인 후 정보를 얻을 수 있는 주소
$url2 = "http://m.oschina.net/my"// 시뮬레이션 로그인
login_post($url, $cookie, $post);
//로그인 페이지 정보 가져오기
$content = get_content($url2, $cookie)//쿠키 파일 삭제
@ unlink($cookie);
//매칭 페이지 정보
$preg = "/
(.*)
/i"
preg_match_all($preg, $content, $arr);
$str = $arr[1][0];
//출력 내용
echo $str;


위 코드를 실행하면 마지막으로 로그인한 사용자의 아바타 사진을 얻습니다.

PHP는 로그인을 시뮬레이션하고 데이터를 가져옵니다.

사용 요약

1. 컬 초기화

2. ;

3. 컬을 실행합니다.

4. 실행 후 컬을 닫습니다.

5.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.