使用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 相关文章推荐
第十四节 命名空间 [14]
Oct 09 PHP
我的论坛源代码(十)
Oct 09 PHP
php实现的在线人员函数库
Apr 09 PHP
php在线打包程序源码
Jul 27 PHP
PHP Header用于页面跳转要注意的几个问题总结
Oct 03 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
php通过获取头信息判断图片类型的方法
Jun 26 PHP
PHP实现合并discuz用户
Aug 05 PHP
php+mysql实现无限级分类
Nov 11 PHP
Zend Framework动作助手Redirector用法实例详解
Mar 05 PHP
PHP CURL使用详解
Mar 21 PHP
php7性能提升的原因详解
Oct 13 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遍历目录viewDir函数
2009/12/15 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
取键盘键位ASCII码的网页
2007/07/30 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
vue.js中导出Excel表格的案例分析
2019/06/11 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
python改变日志(logging)存放位置的示例
2014/03/27 Python
浅谈django model postgres的json字段编码问题
2018/01/05 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
python下载的库包存放路径
2020/07/27 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
pandas数据分组groupby()和统计函数agg()的使用
2021/03/04 Python
CSS3 实现的缩略图悬停效果
2020/12/09 HTML / CSS
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
生产副总岗位职责
2013/11/28 职场文书
大学军训感言1000字
2014/02/25 职场文书
怀念母亲教学反思
2014/04/28 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
初婚未育证明样本
2015/06/18 职场文书