php curl抓取网页指定内容(PHP的CURL功能扩展模块的基本使用开启扩展)

优采云 发布时间: 2022-04-20 02:18

  php 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-

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线