Re: [請益] 抓取需要登入網站的原始碼

看板PHP作者 (瑋哥)時間13年前 (2012/04/11 18:39), 編輯推噓4(403)
留言7則, 2人參與, 最新討論串2/2 (看更多)
應該可以先用 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

04/11 19:01, , 1F
先謝謝你為我做這麼詳盡的解說 回家在試試
04/11 19:01, 1F

04/11 21:47, , 2F
基本上不用模擬browser應該沒差,cookie 是要預先就取得
04/11 21:47, 2F

04/11 21:48, , 3F
不過也要看需求就是~
04/11 21:48, 3F

04/11 23:34, , 4F
我學校主機沒有開放curl這個功能,囧
04/11 23:34, 4F

04/12 09:08, , 5F
有一個 file_get 之類的函式也可以達成這個功能,但抓出來
04/12 09:08, 5F

04/12 09:09, , 6F
的內容不一定是完整正確的(可能會有一點點錯)
04/12 09:09, 6F

04/12 09:09, , 7F
其實自己架主機在電腦也可以直接用 curl ....
04/12 09:09, 7F
文章代碼(AID): #1FXLzM7o (PHP)
文章代碼(AID): #1FXLzM7o (PHP)