使用PHP curl模拟浏览器抓取网站信息
2015-01-24信息快讯网
curl是一个利用URL语法在命令行方式下工作的文件传输工具。curl是一个利用URL语法在命令行方式下工作的文件传输工具。
官方解释
curl是一个利用URL语法在命令行方式下工作的文件传输工具。curl是一个利用URL语法在命令行方式下工作的文件传输工具。
它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,
上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。
curl讲解一
PHP中curl函数应用
简单的来说一共四步
curl_init();
curl_setopt();
curl_exec();
curl_close();
最重要的命令就是 curl_setopt();
一个简单的post请求例子
index.php
<?php $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目录下才可以的,提醒别的朋友别和我一样瞎转
<?php $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, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $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, CURLOPT_URL, 'http://bbs.lampbrother.net/'); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); curl_exec($ch); curl_close($ch); ?>
PHP图片等比例缩放生成缩略图函数分享
PHP定时更新程序设计思路分享
教你如何用php实现LOL数据远程获取
PHP面向对象教程之自定义类
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
PHP解决URL中文GBK乱码问题的两种方法
PHP Curl出现403错误的解决办法
微信支付开发教程(一)微信支付URL配置
php中curl和file_get_content的区别
php中curl、fsocket、file_get_content三个函数的使用比较
PHP CURL获取返回值的方法
php字符编码转换之gb2312转为utf8
php header功能的使用
php json与xml序列化/反序列化
php中的boolean(布尔)类型详解
php中的比较运算符详解
php float不四舍五入截取浮点型字符串方法总结
获取URL文件名后缀
PHP CURL CURLOPT参数说明(curl_setopt)
php中通过curl检测页面是否被百度收录
PHP 输出URL的快捷方式示例代码
对淘宝URL中ID提取的PHP代码
php curl基本操作详解
利用curl抓取远程页面内容的示例代码
奉献出一个封装的curl函数 便于调用(抓数据专用)