`
王之子
  • 浏览: 109906 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

CURL 模拟登陆并获取数据

阅读更多

    在做采集程序时,有时我们要抓取一些登录才能访问的页面。但是有时即使我们登录成功了,却还是无法抓取相关页面,这是为什么呢?

    嗯,最有可能的原因是没把登录成功后的 cookie 一并传递过去。

    对于一些安全防范措施不是做得很高的网站,我们可以通过 PHP 的函数 curl_setopt 来登录的。

<?php
//在指定目录中建立一个具有唯一文件名的文件。如果该目录不存在,tempnam() 会在系统临时目录中生成一个文件,并返回其文件名。 
$cookie_file tempnam('./tmp','cookie');//其中 cookie 为文件名的前缀
$postfield 'LoginForm[username]=admin&LoginForm[password]=admin&LoginForm[rememberMe]=0&yt0=Login';
$url "http://localhost/testdrive/index.php?r=site/login";//登录 提交的 url,可以通过 firfox 的 firebug 工具或者 google chrome 的开发人员工具来查看
$ch curl_init($url);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_COOKIEJAR$cookie_file);//保存 cookie 的文件
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
curl_setopt($chCURLOPT_POSTFIELDS,$postfield);
$strlen curl_exec($ch);

$url "http://localhost/testdrive/index.php";//访问登录后的页面。
$ch curl_init($url);
curl_setopt($chCURLOPT_RETURNTRANSFER0);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
curl_setopt($chCURLOPT_COOKIEJAR$cookie_file);//再次发送请求时,cookie 就会自动传递过去
$strlen curl_exec($ch);
?>

 

原文链接:http://woqilin.blogspot.com/2012/11/curl.html

分享到:
评论

相关推荐

    PHP100视频教程88:PHP.之.CURL模拟登陆并获取数据.rar

    【PHP与CURL模拟登录及数据获取】 在Web开发中,有时我们需要模拟用户登录到某个网站,以便自动化处理一些任务或获取受保护的数据。在这个PHP100视频教程88中,我们将深入学习如何利用PHP的cURL库来实现这个功能。...

    curl模拟登陆rsa加密事例

    总的来说,通过理解RSA加密原理,掌握PHP和cURL库的使用,我们可以编写出能够模拟登录并处理RSA加密的脚本。这是一个涉及网络通信、加密技术、Web编程的综合实践,对于提升开发者的技术能力具有重要意义。

    php curl 模拟登录并获取数据实例详解

    cURL 是一个功能强大的PHP库,使用PHP的cURL库可以简单和有效地抓取网页并采集内容,设置cookie完成模拟登录网页,curl提供了丰富的函数,开发者可以从PHP手册中获取更多关于cURL信息。本文以模拟登录开源中国...

    PHP模拟登陆163邮箱发邮件及猎取通讯录列表的方法_.docx

    在使用 curl 模拟登陆 163 邮箱时,需要获取登陆结果信息,以便判断登陆是否成功。如果登陆失败,需要获取失败原因信息,以便进行错误处理。 4. 获取 cookie 信息 在登陆成功后,需要获取 cookie 信息,以便使用该...

    PHP函数分享之curl方式取得数据、模拟登陆、POST数据

    本篇将详细介绍如何使用PHP的cURL函数来获取数据、模拟登陆以及POST数据。 首先,我们来看一个基本的cURL函数示例,名为`curl_allinfo`,这个函数用于通过cURL处理各种HTTP请求: ```php public function curl_all...

    php curl 自动微博登陆

    3. **设置cURL选项**:使用cURL,我们需要设置适当的选项来模拟表单提交,例如设置POST字段、添加之前获取的cookie、设置请求头等。 4. **执行POST请求**:使用构造好的数据,向微博服务器发送POST请求,以完成登录...

    php通过curl模拟登陆DZ论坛

    在如今的网络世界中,模拟登陆论坛并进行数据采集是一项相当实用的技术。本文将详细解读如何使用PHP语言配合libcurl库通过CURL函数模拟登陆DZ(Discuz!)论坛,并且进行数据的采集。 首先,我们需要了解CURL是一个...

    PHP - cURL实现短信验证码注册登录完整示例:PHP - cURL.php和附件说明

    ` 发送请求并获取响应。 7. **检查错误**:`curl_error($ch)` 检查是否有错误发生。 8. **关闭cURL**:`curl_close($ch);` 完成后记得关闭cURL资源。 对于注册和登录过程,通常分为以下几个步骤: 1. **发送...

    PHP CURL实现模拟登陆并上传文件操作示例

    2. 获取并保存cookies:登录成功后,服务器通常会返回一个或多个cookies,这些cookies用于识别已登录的用户。我们需要保存这些cookies,以便在后续请求中保持登录状态。 3. 使用保存的cookies进行后续操作:例如上传...

    php使用curl模拟登录后采集页面的例子

    // 执行cURL会话并获取页面内容 $content = curl_exec($curl2); // 关闭cURL资源 curl_close($curl2); ``` 在这个例子中,我们首先初始化了一个cURL会话 `$curl`,设置登录页面的URL,并传递了用户名和密码作为...

    php实现模拟登陆方正教务系统抓取课表

    以下是一个简单的cURL模拟登陆的示例代码: ```php function curl_request($url, $post = '', $cookie = '', $returnCookie = 0){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($...

    PHP CURL 126好友邀请 126邮箱登录

    在IT行业中,PHP和cURL库常常被用来处理网页数据抓取、API调用以及模拟浏览器行为,例如登录网站和获取网页内容。本教程将详细讲解如何使用PHP结合cURL来实现126邮箱的登录及好友邀请功能,同时解决可能出现的网络...

    PHP curl模拟登录带验证码的网站

    最近接了个项目,其中有需求是要登录带验证码的网站,获取数据,但是我们不可能人为的一直去记录数据,想通过自动采集的方式进行,下面小编给大家带来的相关代码,对php curl 模拟登录带验证码的网站感兴趣的朋友...

    php通过curl添加cookie伪造登陆抓取数据的方法

    - `curl_getinfo()`: 获取cURL请求的元数据。 通过这种方式,你可以模拟登录并抓取需要权限访问的数据。但请注意,始终要遵守网站的使用条款和条件,不要进行非法的爬虫活动。 4. **其他cURL相关资源** - **...

    模拟登陆51job智联 包括验证码的破解

    提供的“模拟登陆源码”文件应包含登录逻辑的完整实现,包括登录接口调用、数据封装、验证码处理等。通过阅读和理解源码,我们可以深入学习如何在Java中实现这些功能,包括请求的发送、响应的解析以及异常处理等。 ...

    php课程(共100多节)

    88:PHP 之 CURL模拟登陆并获取数据 89:PHP XML 的 DOMDocument 读取功能 90:PHP DOM 创建生成多功能 XML文件 91:PHP修改和删除XML内容的原理和方法 92:在线支付接口之PHP支付宝接口开发 93:在线支付接口之PHP...

    php下使用curl模拟用户登陆的代码

    下面是一段简单的示例代码,展示了如何使用`cURL`模拟用户登录: ```php $ch = curl_init(); // 设置登录页面的URL curl_setopt($ch, CURLOPT_URL, "http://example.com/login"); // 表示这是一个POST请求 curl_...

    PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发

    - `curlRequest`函数封装了CURL请求,接收URL和数据作为参数,并支持Cookie文件的使用。 3. CURL的使用和配置: - PHP中的cURL是用于进行HTTP请求的工具,支持多种协议。 - 在代码中,设置了cURL的各种选项...

Global site tag (gtag.js) - Google Analytics