码迷,mamicode.com
首页 > Web开发 > 详细

[PHP自动化-进阶]001.模拟登录并采集数据

时间:2015-09-08 12:00:30      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

引言:PHP可以通过libcurl实现模拟登录,提交数据,违法乱纪,烧杀抢虐等等事项。

简单说明一下"libcurl",补一下脑:

  • libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。
  • libcurl同时也支持 HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

使用curl可以实现Get和Post请求的方法,伪造来路IP等等功能。。。

技术分享

 

切入主题


这一讲,我们为大家准备了如何利用libcurl进行"模拟登录用户并采集数据"。

开启说明

默认情况下,PHP的CURL功能是没有开启的,所以你要自己去开启这个功能,需要如下操作:

在php.ini中把  ;extension= php_curl.dll 前面的  " ; " 号去掉!!!

单刀直入

直接上代码,代码注释已经很详细!各位看官请看下面:

 步骤1:

创建一个具有唯一文件名的临时文件,用于cookie信息的存储。 (若成功,则返回新的临时文件名。若失败,则返回 false。)

// 指定Cookie保存文件
$cookie_file
= tempnam(‘./temp‘, ‘cookie‘);

 步骤2:

 初始化一个curl对象,并同时指定要请求的网址,请求携带数据。

// 请求网址
$url  = "http://www.phpyu.com/index.php?action=login";
// 请求网址
$data = "user=××&pw=××";;
// 初始化CURL对象 $ch = curl_init($url);

 步骤3:

 设置curl对象参数。

// 设置请求头[无](说明:如果需要把头包含在输出中,则设置属性为一个非零值。)
curl_setopt($ch, CURLOPT_HEADER, 0);
// 设置不输出到浏览器
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 设置请求为通用POST(说明:如果想PHP去做一个正规的HTTP POST,设置属性为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。) 
curl_setopt($ch, CURLOPT_POST, 1); // 设置请求携带数据
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // 设置Cookie保存文件(说明:把返回来的cookie信息保存在$cookie_file文件中) curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);

 步骤4:

 执行请求,并关闭。

// 执行请求
curl_exec($ch);
// 关闭对象
curl_close($ch);

 上面已经完成了模拟登录的过程

 完整代码如下:

 

[PHP自动化-进阶]001.模拟登录并采集数据

标签:

原文地址:http://www.cnblogs.com/superdo/p/4790910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!