使用PHP curl模拟浏览器抓取网站信息


Posted in PHP onOctober 28, 2013

官方解释
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游戏编程25个脚本代码
Feb 08 PHP
如何使用php绘制在图片上的正余弦曲线
Jun 08 PHP
php curl post 时出现的问题解决
Jan 30 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
windows下配置php5.5开发环境及开发扩展
Dec 25 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
Jul 06 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 PHP
PHP多进程简单实例小结
Nov 09 PHP
Thinkphp集成抖音SDK的实现方法
Apr 28 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
Feb 26 PHP
php header功能的使用
Oct 28 #PHP
简单实用的.net DataTable导出Execl
Oct 28 #PHP
php json与xml序列化/反序列化
Oct 28 #PHP
php中的boolean(布尔)类型详解
Oct 28 #PHP
php中的比较运算符详解
Oct 28 #PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 #PHP
析构函数与php的垃圾回收机制详解
Oct 28 #PHP
You might like
使用PHP实现Mysql读写分离
2013/06/28 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
PHP运行模式汇总
2016/11/06 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
鼠标拖拽移动子窗体的JS实现
2014/02/25 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
使用matplotlib画散点图的方法
2018/05/25 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
Python无损压缩图片的示例代码
2020/08/06 Python
利用HTML5+CSS3实现3D转换效果实例详解
2017/05/02 HTML / CSS
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
学生会主席事迹材料
2014/01/28 职场文书
培训专员岗位职责
2014/02/26 职场文书
英文演讲稿开场白
2014/08/25 职场文书
信仰心得体会
2014/09/05 职场文书
离婚协议书范文2014
2014/10/16 职场文书
先进班组材料范文
2014/12/25 职场文书
2015年重阳节慰问信
2015/03/23 职场文书