[請益] 請問cURL某一網站的問題
小弟想利用curl來抓取某網站的內容
https://www.youtube.com/trendsdashboard#age0=25-34&loc0=twn
使用以下mycurl()的程式碼 , 有抓到東西
抓到的head如下:
HTTP/1.1 200 OK Date: Wed, 30 Mar 2016 09:23:41 GMT Server: gwiseguy/2.0
X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block;
report=https://www.google.com/appserve/security-bugs/log/youtube
Cache-Control: no-cache Content-Type: text/html; charset=utf-8 Expires: Tue,
27 Apr 1971 19:44:06 EST Strict-Transport-Security: max-age=604800
X-Content-Type-Options: nosniff Accept-Ranges: none Vary: Accept-Encoding
Transfer-Encoding: chunked
後來我也有把cookie 送上去
但不知為什麼抓不到原始網頁下方影片的資訊(連結href, 點及次數...等資訊)
想請教大家自己是哪個地方出錯?
或是目標網頁有什麼新技術 造成無法抓取呢? 感謝~~
function mycurl()
{
//目標網站
$target1="https://www.youtube.com/trendsdashboard#age0=25-34&loc0=twn ";
#####(A 1)選項設定: 目標設置 / 起始 / 假冒
$s=curl_init();
curl_setopt($s,CURLOPT_URL,$target1);
$user_agent='Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.11 (KHTML,
like Gecko) Chrome/23.0.1271.95 Safari/537.11';
curl_setopt($s, CURLOPT_USERAGENT, $user_agent);
#(1)是否發送POST請求 (填表單)
//$POST_data1=array('CN'=>"l6",'remember'=>"1",'UserPASSWORD'=>"091",'URL'=>"");
//$POST_data2=array('username'=>"markbone2@yahoo.com.tw",'passwd'=>"");
//curl_setopt($s,CURLOPT_POST,1);
//curl_setopt($s,CURLOPT_POSTFIELDS,$POST_data1);
#(2)結果回傳:是否以 文件流/二元碼方式傳回
curl_setopt($s,CURLOPT_RETURNTRANSFER,TRUE);
//curl_setopt($s,CURLOPT_BINARYTRANSFER,TRUE);
#(3)結果回傳:是否 包含標頭 / 只要BODY
curl_setopt($s,CURLOPT_HEADER,TRUE);
#(4)COOKIE設定: CURLOPT_COOKIEJAR接收儲存資訊 ,而CURLOPT_COOKIEFILE送出資訊。
###送出多個cookie內容(變數資料串),分號後要帶1個空格 範例"friut=8923;
curl_setopt($s,CURLOPT_COOKIE,"VISITOR_INFO1_LIVE=4kLW9NhJVbI;
YSC=KTyxERZA5Io; PREF=f1=50000000");
###記錄COOKIE資訊,在cookie.txt中(絕對位置)
curl_setopt($s,CURLOPT_COOKIEJAR,"C:\\xampp\\htdocs\\mark\\cookie.txt");
###瀏覽時,把cookie.txt當中的COOKIE資訊一併送出給伺服器
curl_setopt($s,CURLOPT_COOKIEFILE,"C:\\xampp\\htdocs\\mark\\cookie.txt");
#(5)SSL網站 (https開頭)
######抓取SLL網站則要記得開啟verifypeer這行 並設定成false
curl_setopt($s,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($s,CURLOPT_SSL_VERIFYHOST,0);
//curl_setopt($s, CURLOPT_SSL_CAPATH,cainfo);
//curl_setopt($s, CURLOPT_SSL_CAINFO,"cainfo.txt");
//curl_setopt($s, CURLOPT_SSL_VERSION,2);
######是否檢查伺服器端SSL證書中有沒有domain/subdomain name
//curl_setopt($s, CURLOPT_SSL_VERIFYHOST,TRUE);
# (6)設定等待SERVER的時間~單位秒
curl_setopt($s,CURLOPT_TIMEOUT,15);
# (7)重新導向 : 是否跟隨重導 ,設定引入參照, 最大重導次數
curl_setopt($s,CURLOPT_FOLLOWLOCATION,TRUE);
curl_setopt($s,CURLOPT_AUTOREFERER,TRUE);
curl_setopt($s,CURLOPT_MAXREDIRS,3);
//curl_setopt($s,CURLOPT_UNRESTRICTED_AUTH,TRUE);
#####(B)最後一次 執行CURL 並把錯誤資訊導出################
$download_page=curl_exec($s);
$errors=curl_error($s);
###### 展示並寫入擋案:$download_page & webget.txt ########
echo $download_page."<br>"."抓取結END!";
file_put_contents("WEBget.txt",$download_page);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.184.33.38
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1459329966.A.476.html
※ 編輯: marksam (111.184.33.38), 03/30/2016 17:34:21
※ 編輯: marksam (111.184.33.38), 03/30/2016 17:38:21
→
03/30 18:22, , 1F
03/30 18:22, 1F
→
03/30 18:23, , 2F
03/30 18:23, 2F
※ 編輯: marksam (111.184.33.38), 03/30/2016 18:51:05
→
03/30 18:51, , 3F
03/30 18:51, 3F
→
03/30 22:16, , 4F
03/30 22:16, 4F
※ 編輯: marksam (111.184.33.38), 03/30/2016 23:10:14
→
03/30 23:11, , 5F
03/30 23:11, 5F
→
03/30 23:12, , 6F
03/30 23:12, 6F
→
03/30 23:17, , 7F
03/30 23:17, 7F
→
03/30 23:18, , 8F
03/30 23:18, 8F
推
03/31 00:31, , 9F
03/31 00:31, 9F
→
03/31 00:31, , 10F
03/31 00:31, 10F
→
03/31 05:02, , 11F
03/31 05:02, 11F
→
03/31 09:41, , 12F
03/31 09:41, 12F
→
03/31 09:43, , 13F
03/31 09:43, 13F