使用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 文章调用类代码
Aug 11 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
PHP数据流应用的一个简单实例
Sep 14 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
smarty的section嵌套循环用法示例
May 28 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
php生成图片缩略图功能示例
Feb 22 PHP
ThinkPHP实现附件上传功能
Apr 27 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
详解php curl带有csrf-token验证模拟提交方法
Apr 18 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
Apr 30 PHP
详解PHP 7.4 中数组延展操作符语法知识点
Jul 19 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&amp;mysql(二)
2006/10/09 PHP
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
php mysql 判断update之后是否更新了的方法
2012/01/10 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
python实现异步回调机制代码分享
2014/01/10 Python
使用Python的判断语句模拟三目运算
2015/04/24 Python
Python中元组,列表,字典的区别
2017/05/21 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
Python中的Numpy矩阵操作
2018/08/12 Python
pandas apply多线程实现代码
2020/08/17 Python
英国皇家造币厂:The Royal Mint
2018/10/05 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
Python中如何定义一个函数
2016/09/06 面试题
教师党性分析材料
2014/02/04 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
我爱我校演讲稿
2014/05/21 职场文书
如何写股份合作协议书
2014/09/11 职场文书
计算机实训报告总结
2014/11/05 职场文书
欢迎词范文
2015/01/27 职场文书
长城导游词300字
2015/01/30 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers