php curl抓取网页指定内容(PHP的CURL功能扩展模块的基本使用开启扩展)
优采云 发布时间: 2022-04-20 02:18php curl抓取网页指定内容(PHP的CURL功能扩展模块的基本使用开启扩展)
PHP的CURL函数扩展模块
1.什么是CURL功能模块
CURL 是一个开源文件传输工具,它使用 URL 语法从命令行工作。广泛用于liinux、unix系统,在DOS和win3下都有移植版本2、win64。
例子:
使用命令:curl //直接抓取网页内容
可以在命令行上进行的CURL操作也可以通过默认支持的CURL扩展使用PHP的函数来实现。
2.为什么要使用 CURL 模块
页面抓取,数据采集,网络爬虫,虽然名字不同,但原理是一样的,都是从别人那里获取内容网站。很多时候,因为想偷懒,就使用php中简单的fopen()、file_get_contents()等文件操作函数来暴力获取直接访问的页面数据。
如果您要抓取具有页面访问控制的页面或需要登录才能访问的页面,此方法将不起作用。因为文件操作函数无法定义客户端描述的文件请求头信息,也无法通过GET、POST等不同的请求方式获取内容。 CURL是一个文件传输工具,使用URL语法工作于命令行模式,支持多种协议,如http、ftp、telnet等。为了解决这个问题,我们可以使用php的扩展库CURL,通常是默认在安装包中,方便我们获取其他网站的内容。
3.CURL 能做什么?
3.1 模拟 POST 和 GET 请求。
3.2实现接口对接(API),数据传输,微信公众平台开放接口接入等。
3.3 实现一些只能在登录状态下才能操作的属性,比如模拟cookies。
4.PHP的CURL模块基本使用
4.1.启用 CURL 扩展
extension=php_curl.dll
4.2 使用 CURL 的基本步骤
初始化
//新建curl资源并赋值给变量$ch
$ch=curl_init();
设置变量
//设置网址,其他选项也可以同样设置
curl_setopt($ch,CURLOPT_URL,"");
执行并获得结果
//执行,获取url内容并输出到浏览器
curl_exec($ch);
释放 CURL 资源
//释放资源
curl_close($ch);
如果想获取内容不输出,可以使用CURLOPT_RETURNTRANSFER参数,将其内容设置为非0或true,即curl_exec()获取的信息将作为字符串返回,而不是直接输出我们把上面的步骤整合成一个函数,只要传递了url链接就可以返回请求的代码网站。
/**
*自定义一个请求url的函数,通过curl实现
****@param$url
****@returnmixed
*/
函数请求($url)
{
//新建curl资源并赋值给变量$ch
$ch=curl_init();
//设置网址,其他选项也可以同样设置
curl_setopt($ch,CURLOPT_URL,$url);
//设置获取内容不输出
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
//执行,获取url内容并输出到浏览器
$output=curl_exec($ch);
//添加如下代码检测错误! ! !
如果($输出===假){
echo "请求失败!".curl_error($ch);
}
//释放资源
curl_close($ch);
返回$输出;
}
5.CURL 相关函数选项
通过设置函数curl_setopt()的不同参数,可以得到不同的结果,这就是curl强大的原因。
boolcurl_setopt(resource$ch,int$option,mixed$value)
为 cURL 会话句柄设置选项。
参数
ch
curl_init() 返回的 cURL 句柄。
选项
需要设置的 CURLOPT_XXX 选项。
价值
将在选项选项上设置的值。
介绍一些常用的:
CURLOPT_POST:这是一个非常有用的功能,因为它允许用户使用 POST 请求而不是 GET 请求,这意味着用户可以提交其他形式的页面而无需在表单中填写数据。当它为 TRUE 时将发送一个 POST 请求,类型为:application/x-