平時開發中經常會遇到抓取某個頁面內容,但是有時候某些頁面需要登陸才能訪問,最常見的就是論壇,這時候我們需要來使用curl模擬登陸。
以下討論的是和僞造模擬客戶端COOKIE登陸採集抓取遠程網址相關的PHP通過僞造和模擬客戶端COOKIE登陸來採集抓取遠程網址頁面內容的方法教程文章,內容是本站精心挑選整理的教程,希望對廣大的網友給到幫助,下面是詳細內容:
php模擬登陸
平時開發中經常會遇到抓取某個頁面內容,但是有時候某些頁面需要登陸才能訪問,最常見的就是論壇,這時候我們需要來使用curl模擬登陸。大致思路:需要先請求提取cookies並保存,然後利用保存下來的這個cookies再次發送請求來獲取頁面內容,下面我們直接上代碼<?php /** * Brief PHP讀取Curl模擬登陸,獲取cookie,帶cookie進行請求 * Date:2016/10/20 * Time:9:41 */ //設置cookie保存位置 $cookieFile=dirname(__FILE__).'cookie.curl.tmp'; //第一步:獲取cookie $url='https://www.hfxskyyj.com/; $data=array( 'username'=>'aseoe', 'password'=>'aseoe', ); //curl初始化 $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); //設置爲post請求 curl_setopt($ch,CURLOPT_POST,true); //設置附帶返回header信息爲空 curl_setopt($ch,CURLOPT_HEADER,0); //post數據 curl_setopt($ch,CURLOPT_POSTFIELDS,$data); //cookie保存文件位置 curl_setopt($ch,CURLOPT_COOKIEJAR,$cookieFile); //設置數據返回作爲變量儲存,而不是直接輸出 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //執行請求 $ret=curl_exec($ch); //關閉連接 curl_close($ch); //第二步:附帶cookie請求需要登陸的頁面 $url='https://www.hfxskyyj.com/'; //curl初始化 $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); //設置爲post請求 curl_setopt($ch,CURLOPT_POST,true); //設置附帶返回header信息爲空 curl_setopt($ch,CURLOPT_HEADER,0); //設置cookie信息文件位置,注意與第二步中的獲取不同,這裏是讀取 curl_setopt($ch,CURLOPT_COOKIEFILE,$cookieFile); //設置數據返回作爲變量儲存,而不是直接輸出 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //執行請求 $ret=curl_exec($ch); //關閉連接 curl_close($ch); //打印抓取內容 var_dump($ret);
這樣我們就抓取到了需要登陸才能訪問頁面的內容,注意上面的地址只是一個示例,需要換成你想要抓取頁面的地址。
平時開發中經常會遇到抓取某個頁面內容,但是有時候某些頁面需要登陸才能訪問,最常見的就是論壇,這時候我們需要來使用curl模擬登陸。大致思路:需要先請求提取cookies並保存,然後利用保存下來