作者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