`
hehailin1986_163.com
  • 浏览: 153900 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

PHP的cURL库功能简介:抓取网页,POST数据及其他

    博客分类:
  • PHP
阅读更多
使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP库。本文主要讲述如果使用这个PHP库。

启用 cURL 设置

首先,我们得先要确定我们的PHP是否开启了这个库,你可以通过使用php_info()函数来得到这一信息。

﹤?php
phpinfo();
?﹥


如果你可以在网页上看到下面的输出,那么表示cURL库已被开启。

如果你看到的话,那么你需要设置你的PHP并开启这个库。如果你是在Windows平台下,那么非常简单,你需要改一改你的php.ini文件的设置,找到php_curl.dll,并取消前面的分号注释就行了。如下所示:

//取消下在的注释
extension=php_curl.dll

如果你是在Linux下面,那么,你需要重新编译你的PHP了,编辑时,你需要打开编译参数——在configure命令上加上“–with-curl” 参数。

一个小示例

如果一切就绪,下面是一个小例程:

﹤?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
$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
$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
$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手册。
分享到:
评论

相关推荐

    php应用curl扩展抓取网页类.zip

    `php应用curl扩展抓取网页类.zip`这个压缩包提供了一个PHP类,它封装了cURL功能,方便开发者进行网页抓取。 cURL是一个强大的库,用于处理URLs,它支持多种协议,包括HTTP、HTTPS、FTP等,同时也支持POST、PUT等...

    PHP的cURL库功能简介 抓取网页、POST数据及其他

    **PHP的cURL库功能简介** cURL是PHP中一个强大的库,用于处理URLs,支持多种协议,包括HTTP、HTTPS、FTP等。它允许开发者执行各种网络操作,如抓取网页内容、POST数据、模拟HTTP方法以及通过代理服务器进行访问。...

    PHP使用Curl实现模拟登录及抓取数据功能示例

    在PHP开发中,有时我们需要获取一些需要用户登录后才能访问的网页内容,此时可以借助Curl库来模拟登录过程并抓取数据。Curl库是一个强大的URL处理工具,支持多种协议,包括HTTP、HTTPS等,它能让我们在PHP中发送HTTP...

    php应用curl扩展抓取网页类

    本篇文章将深入探讨如何使用PHP的cURL扩展来抓取网页内容,以及如何创建一个类来封装这个功能。我们将讨论以下几个方面: 1. **cURL介绍** cURL是一个命令行工具,同时也提供了PHP的扩展,使得开发者可以在PHP脚本...

    php的curl抓数据专用.zip

    在PHP开发中,cURL库是一个非常重要的工具,它允许开发者通过HTTP、HTTPS和其他协议发送请求,用于数据抓取、网页交互以及API调用等多种用途。"php的curl抓数据专用.zip"这个压缩包文件很可能包含了一个封装好的PHP...

    php扩展 php_curl

    总结来说,`php_curl`扩展是PHP进行网络通信的重要工具,它提供的功能强大且灵活,使得开发者可以轻松地进行数据抓取、文件上传下载、API调用等各种网络操作。通过熟练掌握`php_curl`,你可以编写出更健壮、高效的...

    PHP CURL详解

    PHP的CURL库是一种强大的工具,用于在服务器端执行HTTP请求,它支持多种协议,包括HTTP、HTTPS、FTP、FTPS等,是网页抓取、模拟POST和GET请求的重要手段。CURL使得PHP开发者可以方便地与远程服务器进行交互,获取或...

    php下curl用法详解

    在PHP中,cURL库是一个强大的工具,用于执行HTTP和其他协议的请求,它允许开发者模拟浏览器行为,如发送POST请求、处理cookies、设置代理等。本文将深入解析PHP下的cURL用法,以便更好地理解和应用。 1. **初始化...

    PHP Post And Get Class,封装Curl,可带cookie,让post/get更简单方便。带例程

    在PHP开发中,HTTP请求是常见且至关重要的操作,尤其是对于网页抓取、API交互以及模拟用户登录等场景。本文将详细讲解如何使用PHP的cUrl库进行POST和GET请求,并封装成一个便利的类,同时介绍如何处理和传递cookie,...

    php抓取三星在售手机数据

    在IT行业中,网络数据抓取是一项重要的技能,尤其在电商数据分析、市场研究和产品管理等领域。本项目聚焦于使用PHP语言来抓取京东网站上三星手机的销售数据,包括手机名称、价格、运行内存、电池容量、机身颜色以及...

    PHP中使用cURL操作网络资源1

    在本文中,我们将深入探讨如何在PHP 7环境中利用cURL操作网络资源,包括网页抓取、调用WebService接口以及访问HTTPS资源。 一、开发环境 为了进行PHP与cURL的实践,我们需要搭建一个基础的开发环境。在这个案例中,...

    php中curl.exe运行文件

    在PHP开发中,`curl` 是一个非常重要的库,用于执行HTTP和其他协议的请求。它允许程序员通过命令行工具或PHP扩展来发送网络请求,获取远程服务器的数据,这对于数据抓取、API交互以及自动化测试等任务非常有用。本文...

    php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法

    不过需要注意的是,淘宝的防爬虫策略是不断更新的,因此使用curl抓取淘宝页面的时候,需要考虑到反反爬虫技术的实现,比如设置合适的请求头、使用代理、处理Cookies等。 libcurl是一个客户端的URL传输库,被PHP ...

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

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

    php的curl抓数据专用

    当我们需要从其他网站抓取数据时,PHP的cURL库就显得非常实用。cURL库提供了一种在PHP中执行HTTP请求的方法,包括GET、POST、PUT等多种HTTP方法,使得我们可以方便地获取远程资源。 标题“php的curl抓数据专用”...

    php_curl win8 安装

    本文将详细介绍如何在Windows 8操作系统上安装PHP的cURL扩展,以便你可以利用这个功能丰富的库进行网页抓取、文件上传、HTTP认证等各种网络操作。 首先,让我们了解PHP和cURL。PHP(Hypertext Preprocessor)是一种...

    http类库:基于php curl库封装的http类库.zip

    PHP的cURL库是一个功能丰富的库,用于在各种协议(包括HTTP、HTTPS、FTP等)之间传输数据。但是,cURL的直接使用可能会涉及较多的参数设置和回调函数,对于开发者来说,这可能增加代码的复杂性。因此,这个http类库...

    php页面抓取源码(一个小文件)

    当我们需要从其他网站获取数据,比如价格、新闻或者任何公开的网页内容时,"页面抓取"(Web Scraping)技术就显得尤为重要。本文将详细讲解PHP如何实现页面抓取,以及相关的重要知识点。 首先,页面抓取的基本原理...

Global site tag (gtag.js) - Google Analytics