使用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 09 PHP
PHP学习之PHP表达式
Oct 09 PHP
PHP令牌 Token改进版
Jul 18 PHP
CakePHP去除默认显示的标题及图标的方法
Oct 22 PHP
PHP跳转页面的几种实现方法详解
Jun 08 PHP
PHP swfupload图片上传的实例代码
Sep 30 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
May 06 PHP
PHP PDOStatement::fetchObject讲解
Feb 01 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 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
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
php格式化日期和时间格式化示例分享
2014/02/24 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
PHP 断点续传实例详解
2017/11/11 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
js实现随机点名小功能
2017/08/17 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
python3操作mysql数据库的方法
2017/06/23 Python
微信跳一跳小游戏python脚本
2018/01/05 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
Python常见字典内建函数用法示例
2018/05/14 Python
python自动点赞功能的实现思路
2020/02/26 Python
Python实现SMTP邮件发送
2020/06/16 Python
python 递归相关知识总结
2021/03/03 Python
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
党性观念心得体会
2014/09/03 职场文书
幸福中国演讲稿
2014/09/12 职场文书
抄袭同学作业检讨书1000字
2014/11/20 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js