使用PHP curl模拟浏览器抓取网站信息
发布时间:2020-12-12 19:56:16 所属栏目:PHP教程 来源:网络整理
导读:官方解释 curl是一个利用URL语法在命令行方式下工作的文件传输工具。curl是一个利用URL语法在命令行方式下工作的文件传输工具。 它支持很多协议:FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法,HTTP PUT方
官方解释 代码如下: $url = "http://www.mytest.com/curl/login.php"; //请求的url地址 $user = "zkg111"; //用户名 $pass = "123456"; $postdata = "user_name=".$user."&password=".$pass; //请求的数据,以 & 符号分割 $curl = curl_init(); //开启curl curl_setopt($curl,CURLOPT_URL,$url); //设置请求地址 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); //是否输出 1 or true 是不输出 0 or false输出 curl_setopt($curl,CURLOPT_POST,1); //是否使用post方法请求 curl_setopt($curl,CURLOPT_POSTFIELDS,$postdata); //post数据 echo $data = curl_exec($curl); //执行curl操作 curl_close($curl); ?> 下面一个简单的例子,我随便打开了兄弟连的论坛,接着就模拟了一下兄弟连论坛的登陆,如果需要发帖的话原理都是一样的,转接页面,提交数据 特别注意的是cookie的保存目录 windows7下面必须是在./temp目录下,开始我自己创建了一个新文件夹,发现存是对的,但是cookie读取的时候不对,为此还在好多地方 提问,但是没有回答对的,折腾了好几天该了保存文件为./temp目录下才可以的,提醒别的朋友别和我一样瞎转 代码如下: $url = "http://bbs.lampbrother.net/login.php"; $urls = "http://bbs.lampbrother.net"; $lgt = 0; $user = "XXXX"; $pass = "XXXX"; $question = 0; $hideid = 1; $cookie_file = tempnam('./temp','cookie'); $postdata = "forward=&jumpurl=".$urls."&step=2&lgt=".$lgt."&pwuser=".$user."&pwpwd=".$pass."&question=".$question."&answer=&hideid=".$hideid; $ch = curl_init(); curl_setopt($ch,$url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,1); curl_setopt($ch,$postdata); curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); $data = curl_exec($ch); curl_close($ch); //echo $data; $ch = curl_init(); curl_setopt($ch,'http://bbs.lampbrother.net/'); curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file); curl_exec($ch); curl_close($ch); ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |