使用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中通过ADODB库实现调用Access数据库之修正版本
Dec 31 PHP
php日历[测试通过]
Mar 27 PHP
php与php MySQL 之间的关系
Jul 17 PHP
有关php运算符的知识大全
Nov 03 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
使用php验证复选框有效性的示例
Nov 13 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
windows8.1下Apache+Php+MySQL配置步骤
Oct 30 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
全新Mac配置PHP开发环境教程
Feb 03 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
Smarty简单生成表单元素的方法示例
May 23 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
文件上传类
2006/10/09 PHP
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
Laravel 实现数据软删除功能
2019/08/21 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
JavaScript 函数模式详解及示例
2016/09/07 Javascript
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
python处理文本文件实现生成指定格式文件的方法
2014/07/31 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
2020/04/07 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
努比亚手机官网:nubia
2016/10/06 全球购物
C#面试常见问题
2013/02/25 面试题
感恩母亲节活动方案
2014/03/04 职场文书
主题实践活动总结
2014/05/08 职场文书
推荐信格式要求
2014/05/09 职场文书
售后服务承诺书模板
2014/05/21 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
门卫管理制度范本
2015/08/05 职场文书
vue 自定义组件添加原生事件
2022/04/21 Vue.js