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

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

Nov 08, 2016 pm 01:43 PM

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

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

실제 전투 코드


먼저 코드의 로그인 부분을 살펴보겠습니다.

//模拟登录  function login_post($url, $cookie, $post) { 
    $curl = curl_init();//初始化curl模块 
    curl_setopt($curl, CURLOPT_URL, $url);//登录提交的地址 
    curl_setopt($curl, CURLOPT_HEADER, 0);//是否显示头信息 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//是否自动显示返回的信息 
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //设置Cookie信息保存在指定的文件中 
    curl_setopt($curl, CURLOPT_POST, 1);//post方式提交 
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息 
    curl_exec($curl);//执行cURL 
    curl_close($curl);//关闭cURL资源,并且释放系统资源 
}
로그인 후 복사

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

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

//登录成功后获取数据  function get_content($url, $cookie) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //读取cookie 
    $rs = curl_exec($ch); //执行cURL抓取页面内容 
    curl_close($ch); 
    return $rs; 
}
로그인 후 복사

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

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

//设置post的数据  $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保存路径  $cookie = dirname(__FILE__) . '/cookie_oschina.txt';  //登录后要获取信息的地址  $url2 = "http://m.oschina.net/my";  //模拟登录 
login_post($url, $cookie, $post);  //获取登录页的信息  $content = get_content($url2, $cookie);  //删除cookie文件 
@ unlink($cookie);  //匹配页面信息  $preg = "/<td class=&#39;portrait&#39;>(.*)<\/td>/i"; 
preg_match_all($preg, $content, $arr);  $str = $arr[1][0];  //输出内容  echo $str;
로그인 후 복사

위 코드를 실행하면 드디어 로그인한 사용자의 아바타 이미지가 얻어지는 것을 볼 수 있습니다.

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

사용 요약

1. 컬 초기화

2. 대상 URL 및 기타 옵션을 설정합니다.

3. 컬을 실행합니다.

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

5.

참고자료

"PHP에서 컬과 컬에 대한 소개", 저자 미상, http://www.2cto.com/kf/201208/147091.html

" PHP CURL을 사용한 POST 데이터", 작성자: Veda, http://www.nowamagic.net/librarys/veda/detail/124

"php는 컬을 사용하여 discuz 로그인을 시뮬레이션하고 게시를 시뮬레이션합니다.", 작성자 : tianxin, http://www.cnblogs.com/tianxin2001x/archive/2009/10/28/1591311.html


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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)