学习使用curl采集curl使用方法
2015-01-24信息快讯网
从朋友那拿到一份代码,用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
感觉挺好用的:)
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
探讨file_get_contents与curl效率及稳定性的分析
CURL的学习和应用(附多线程实现)
基于PHP CURL获取邮箱地址的详解
基于Discuz security.inc.php代码的深入分析
php curl的深入解析
基于curl数据采集之正则处理函数get_matches的使用
比file_get_contents稳定的curl_get_contents分享
PHP 日,周,月点击排行统计
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
php curl常见错误:SSL错误、bool(false)
url decode problem 解决方法
php urlencode()与urldecode()函数字符编码原理详解
php空间不支持socket但支持curl时recaptcha的用法
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
php下利用curl判断远程文件是否存在的实现代码
php中使用Curl、socket、file_get_contents三种方法POST提交数据