作者kusoayan (瑋哥)
看板PHP
標題Re: [請益] 抓取需要登入網站的原始碼
時間Wed Apr 11 18:39:14 2012
應該可以先用 curl 去摹擬登入,然後存 cookie
之後把 cookie 餵給 curl 去抓對應的網站?
你應該會用到
// 摹擬 browser
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0;
Windows NT 5.1)");
// 保存 cookie
curl_setopt($curl, CURLOPT_COOKIEJAR, "cookie.txt");
// 讀取 cookie
curl_setopt($curl, CURLOPT_COOKIEFILE, "cookie.txt");
// 塞 post
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($your_post_array));
※ 引述《charlie0228 (嚮往湛藍)》之銘言:
: 如標題
: 因為我想要從一些討論區抓取原始碼
: 但是那些頁面有登入跟沒有登入顯示的資訊不一樣
: 我是使用file()的方式抓取
: 可是這樣就只會抓到未登入的網頁原始碼…
: 有什麼方法可以讓他正確的抓到登入的資訊
: 然後讓我抓到我要的原始碼
: 我要抓的網站是:
: http://my2.tmu.edu.tw
: 先謝謝各位了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.239.137
1F:推 charlie0228:先謝謝你為我做這麼詳盡的解說 回家在試試 04/11 19:01
2F:推 kerash:基本上不用模擬browser應該沒差,cookie 是要預先就取得 04/11 21:47
3F:→ kerash:不過也要看需求就是~ 04/11 21:48
4F:推 charlie0228:我學校主機沒有開放curl這個功能,囧 04/11 23:34
5F:推 kerash:有一個 file_get 之類的函式也可以達成這個功能,但抓出來 04/12 09:08
6F:→ kerash:的內容不一定是完整正確的(可能會有一點點錯) 04/12 09:09
7F:→ kerash:其實自己架主機在電腦也可以直接用 curl .... 04/12 09:09