学习使用curl采集curl使用方法

 更新时间:2012年01月11日 21:38:56   作者:  
从朋友那拿到一份代码,用CURL模拟用户登录并采集需要用户登录的页面的
复制代码 代码如下:

<?php
$cookie_jar = tempnam('./tmp','cookie');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'登陆地址');
curl_setopt($ch, CURLOPT_POST, 1);
$request = 'username=xxx&pwd=xxx';
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);//传递数据
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);//把返回来的cookie信息保存在$cookie_jar文件中
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设定返回的数据是否自动显示
curl_setopt($ch, CURLOPT_HEADER, false);//设定是否显示头信息
curl_setopt($ch, CURLOPT_NOBODY, false);//设定是否输出页面内容
curl_exec($ch);
curl_close($ch); //get data after login

$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, '查看地址');
curl_setopt($ch2, CURLOPT_HEADER, false);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar);
$orders = curl_exec($ch2);

echo $orders;
curl_close($ch2);// 实践证明很稳定:)
?>

先在本机测试,在php.ini中去掉了extension=php_curl.dll前面的;,查看一下phpinfo(),并没有curl。
查了下文档,
复制代码 代码如下:

Note to Win32 Users: In order to enable this module on a Windows environment, libeay32.dll and ssleay32.dll must be present in your PATH.

将libeay32.dll 和ssleay32.dll复制到system32下,重启apache,刷新phpinfo(),看到了curl。
引用
复制代码 代码如下:

cURL support enabled
cURL Information libcurl/7.16.0 OpenSSL/0.9.8d zlib/1.2.3

本机测试顺利通过,再去服务器上测试。原没装curl,只好重新编译php。
在原编译参数后面加了--with-curl=/usr/local/curl。
我这次的配置是:
复制代码 代码如下:

./configure '--prefix=/usr/local/php5' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-mysql=/usr/local/mysql' '--with-gd=/usr/local/gd' '--with-zlib' '--with-png' '--with-jpeg-dir=/usr/local/jpeg' '--with-freetype-dir=/usr/local/freetype' '--enable-sockets' '--with-iconv' '--enable-mbstring' '--enable-track-vars' '--enable-force-cgi-redirect' '--with-config-file-path=/usr/local/php5/etc' --with-curl=/usr/local/curl

很快OK。phpinfo显示
引用
复制代码 代码如下:

CURL support enabled
CURL Information libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.3 libidn/0.5.6

感觉挺好用的:)

相关文章

  • PHP答题类应用接口实例

    PHP答题类应用接口实例

    这篇文章主要介绍了PHP答题类应用接口,以实例形式详细分析了答题类程序的实现思路与相关技巧,并备有较为详尽的注释说明,便于理解,需要的朋友可以参考下
    2015-02-02
  • 解析Linux下Varnish缓存的配置优化

    解析Linux下Varnish缓存的配置优化

    本篇文章是对Linux下Varnish缓存的配置优化进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php curl 获取https请求的2种方法

    php curl 获取https请求的2种方法

    这篇文章主要介绍了php curl 获取https请求的2种方法,本文给出设定为不验证证书和host、设定一个正确的证书二种常用做法的代码实例,需要的朋友可以参考下
    2015-04-04
  • 总结PHP中DateTime的常用方法

    总结PHP中DateTime的常用方法

    本文对DateTime对象使用的方法进行了一些整理,方便大家查找和翻阅,有需要的可以参考学习。
    2016-08-08
  • CodeIgniter 完美解决URL含有中文字符串

    CodeIgniter 完美解决URL含有中文字符串

    下面小编就为大家带来一篇CodeIgniter 完美解决URL含有中文字符串。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • php 移除数组重复元素的一点说明

    php 移除数组重复元素的一点说明

    PHP中移除数组重复元素用的函数是array_unique
    2008-11-11
  • 提示Trying to clone an uncloneable object of class Imagic的解决

    提示Trying to clone an uncloneable object of class Imagic的解决

    使用网上流传的一个程序实现pdf截图为png,需要使用Imagic扩展,安装后出现Trying to clone an uncloneable object of class Imagic提示,下面是具体的解决方法分享。
    2011-10-10
  • PHP遍历目录文件的常用方法小结

    PHP遍历目录文件的常用方法小结

    这篇文章主要介绍了PHP遍历目录文件的常用方法,结合实例形式总结分析了php针对文件与目录的常用遍历技巧与运行效率,具有一定参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • PHP脚本中include文件出错解决方法

    PHP脚本中include文件出错解决方法

    经常当php页面中利用include, require, require_once包含了一些其他位置的页面时,会出现错误,比如没有发现次页面,或者权限不允许等,可以根据以下方法来排除
    2008-11-11
  • PHP请求微信接口获取用户电话号功能示例

    PHP请求微信接口获取用户电话号功能示例

    这篇文章主要介绍了PHP请求微信接口获取用户电话号功能,简单讲述微信请求接口获取用户信息的相关功能,结合具体实例形式分析了php调用微信请求接口获取用户电话号码的相关实现技巧,需要的朋友可以参考下
    2023-07-07

最新评论