使用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在字符串中查找指定字符串并删除的代码
Oct 02 PHP
php 仿Comsenz安装效果代码打包提供下载
May 09 PHP
PHP学习之数组的定义和填充
Apr 17 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
解析php下载远程图片函数 可伪造来路
Jun 25 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
php解析url并得到url中的参数及获取url参数的四种方式
Oct 26 PHP
yii2.0实现创建简单widgets示例
Jul 18 PHP
PHP 5.6.11中CURL模块问题的解决方法
Aug 08 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
Feb 20 PHP
用Laravel轻松处理千万级数据的方法实现
Dec 25 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
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
php验证码生成代码
2015/11/11 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
详谈js原型继承的一些问题
2017/09/06 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
React通过父组件传递类名给子组件的实现方法
2017/11/13 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
Python兔子毒药问题实例分析
2015/03/05 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
Python hashlib模块实例使用详解
2019/12/24 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
python如何实现复制目录到指定目录
2020/02/13 Python
python字符串判断密码强弱
2020/03/18 Python
python实现文字版扫雷
2020/04/24 Python
Python设计密码强度校验程序
2020/07/30 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
冰淇淋开店创业计划书
2014/02/01 职场文书
医师定期考核实施方案
2014/05/07 职场文书
安全责任书模板
2014/07/22 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
大学生暑期实践报告
2015/07/13 职场文书
朋友离别感言
2015/08/04 职场文书
python实现简单的井字棋
2021/05/26 Python