使用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下使用无限生命期Session的方法
Mar 16 PHP
php 传值赋值与引用赋值的区别
Dec 29 PHP
rephactor 优秀的PHP的重构工具
Jun 09 PHP
基于PHP静态类的原罪详解
May 06 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
Yii2 assets清除缓存的方法
May 16 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
PHPCMS忘记后台密码的解决办法
Oct 30 PHP
php源码之将图片转化为data/base64数据流实例详解
Nov 27 PHP
详细解读php的命名空间(一)
Feb 21 PHP
PHP convert_uudecode()函数讲解
Feb 14 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
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
PHP.vs.JAVA
2016/04/29 PHP
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
js电信网通双线自动选择技巧
2008/11/18 Javascript
IE 下的只读 innerHTML
2009/08/21 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
2016/06/15 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
在漏洞利用Python代码真的很爽
2007/08/26 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
python模拟事件触发机制详解
2018/01/19 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
Python扫描端口的实现
2021/01/25 Python
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
Java如何调用外部Exe程序
2015/07/04 面试题
触摸春天教学反思
2014/02/03 职场文书
教师一岗双责责任书
2014/04/16 职场文书
爱心捐助倡议书
2014/05/19 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
毕业生个人自荐书
2015/03/05 职场文书