PHP使用cURL代理
使用PHP 的cURL 可以和有效地去抓。你只需要行一本,然後分析一下你所抓取的,然後就可以以程序的方式得到你想要的了。是你想一接上取部分,或是取一XML 文件把其入,那怕就是的取容,cURL 是一功能大的PHP 。本文主要述如果使用PHP 。
用 cURL 置
首先,我得先要定我的PHP 是否了,你可以通使用php_info() 函得到一信息。
Php代
?php
phpinfo();
?
如果你可以在上看到下面的出,那麽表示cURL 已被。
如果你看到的,那麽你需要置你的PHP 。如果你是在Windows 平下,那麽非常,你需要改一改你的php.ini 文件的置,找到php_curl.dll ,取消前面的分就行了。如下所示:
Php代
//取消下在的
extension=php_curl.dll
如果你是在Linux 下面,那麽,你需要重新你的PHP 了,,你需要打—— 在configure 命令上加上“with-curl” 。
一小示例
如果一切就,下面是一小例程:
Php代
?php
// 初始化一 cURL 象
$curl = curl_init();
// 置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, 'http://cocre.com');
// 置header
curl_setopt($curl, CURLOPT_HEADER, 1);
// 置cURL ,要求果保存到字符串中是出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 行cURL,求
$data = curl_exec($curl);
// URL求
curl_close($curl);
// 示得的
var_dump($data);
如何POST
上面是抓取的代,下面是向某POST 。假我有一理表的址http://www.example.com/sendSMS.php ,其可以接受表域,一是,一是短信容。
Php代
?php
$phoneNumber = '13912345678';
$message = 'This message was generated by curl and php';
$curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' . urlencode($message) . '&SUBMIT=Send';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/sendSMS.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();
curl_close($ch);
?
上面的程序我可以看到,使用CURLOPT_POST 置HTTP 的POST 方法,而不是GET 方法,然後以CURLOPT_POSTFIELDS 置POST 的。
於代理服器
下面是一如何使用代理服器的示例。意其中高亮的代,代很,我就不用多了。
Php代
?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
$data = curl_exec();
curl_close($ch);
?
於SSL 和Cookie
於SSL 也就是HTTPS ,你只需要把CURLOPT_URL 接中的http:// 成https:// 就可以了。然,有一叫CURLOPT_SSL_VERIFYHOST 可以置站。
於Cookie ,你需要了解下面三:
CURLOPT_COOKIE ,在面的中置一cookie
CURLOPT_COOKIEJAR ,束的候保存一Cookie
CURLOPT_COOKIEFILE ,Cookie 的文件。
HTTP 服器
最後,我看一看HTTP 服器的情。
Php代
?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, '[username]:[password]')
$data = curl_exec();
curl_close($ch);
?
总结,cURL关于http可以做三件事:
1,直接抓取某个地址的网页。
2,向某个地址post数据。
3,经过代理访问某个网页。也可以post。
其他,还有https和cookie。
於其它更多的容,看相的cURL 手。