cURL은 강력한 PHP 라이브러리입니다. PHP의 cURL 라이브러리를 사용하면 간단하고 효과적으로 웹 페이지를 크롤링하고 콘텐츠를 수집할 수 있습니다. 컬은 웹 페이지에 대한 로그인을 시뮬레이션하여 PHP에서 더 많은 정보를 얻을 수 있습니다. 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='portrait'>(.*)<\/td>/i"; preg_match_all($preg, $content, $arr); $str = $arr[1][0]; //输出内容 echo $str;
1. 컬을 초기화합니다.
2.curl_exec를 실행하고 4. 컬 닫기 ;5. 출력 데이터. 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.관련 권장 사항:
노드는 puppeteer
자세한 크롤링 단계
PHP는 Curl을 사용하여 시뮬레이트된 로그인
및 데이터 크롤링을 위한 세부 단계
를 구현합니다. 퍼프 에티어 시뮬레이트된 로그인
페이지 크롤링을 위한 구현 코드
위 내용은 PHP 컬은 로그인을 시뮬레이션하고 데이터 인스턴스를 얻습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!