闲来无事,显示大致看了看php关于curl的应用,然后试着写了点东西,然后就直接折戟沉沙了,,,出现一串乱码,遂百度,发现一些解决方案,在此分享给大家。

一、出现乱码等解决方案

       $url = 'http://www.baidu.com';$ch = curl_init($url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch, CURLOPT_HEADER, 0);//3.抓取URL并把它传递给浏览器$rs = curl_exec($ch);
//4.关闭cURL资源,并且释放系统资源curl_close($ch);$rs = mb_convert_encoding($rs, 'utf-8', 'GBK,UTF-8,ASCII'); //加上这行var_dump($rs);

这就是我碰到的第一个问题,百度的网页都获取不了了

(1)利用php的curl抓取网站信息,出现中文乱码的情况:
    $rs = curl_exec($ch);
//关闭cURL资源,并且释放系统资源
        curl_close($ch);
        $rs = mb_convert_encoding($rs, 'utf-8', 'GBK,UTF-8,ASCII'); //加上这行

(2)如果抓取的网页进行了gzip压缩,那么获取的内容很有可能是乱码
解决方案:curl_setopt($ch,CURLOPT_ENCODING,'gzip')//加入gzip解析

(3)如果curl请求的网页发生了重定向,那么抓取的结果很可能为空
解决方案:curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);//加入重定向处理

二、关于curl_getinfo

curl_getinfo的使用。返回来一个数组类型的值,里面有一个url,有一个http_code,http_code可以是302,200,404,500等,如果是302的话,
就是页面跳转,直接可以得到跳转的页面的url。
如果是想取到具体的值,可以采用:curl_getinfo($ch,CURLINFO_HTTP_CODE),则会返回一个http_code字符串。
参数(20个):
CURLINFO_EFFECTIVE_URL – 最后一个有效的URL地址
CURLINFO_HTTP_CODE – 最后一个收到的HTTP代码
CURLINFO_FILETIME – 远程获取文档的时间,如果无法获取,则返回值为“-1”
CURLINFO_TOTAL_TIME – 最后一次传输所消耗的时间
CURLINFO_NAMELOOKUP_TIME – 名称解析所消耗的时间
CURLINFO_CONNECT_TIME – 建立连接所消耗的时间
CURLINFO_PRETRANSFER_TIME – 从建立连接到准备传输所使用的时间
CURLINFO_STARTTRANSFER_TIME – 从建立连接到传输开始所使用的时间
CURLINFO_REDIRECT_TIME – 在事务传输开始前重定向所使用的时间
CURLINFO_SIZE_UPLOAD – 上传数据量的总值
CURLINFO_SIZE_DOWNLOAD – 下载数据量的总值
CURLINFO_SPEED_DOWNLOAD – 平均下载速度
CURLINFO_SPEED_UPLOAD – 平均上传速度
CURLINFO_HEADER_SIZE – header部分的大小
CURLINFO_HEADER_OUT – 发送请求的字符串
CURLINFO_REQUEST_SIZE – 在HTTP请求中有问题的请求的大小
CURLINFO_SSL_VERIFYRESULT – 通过设置CURLOPT_SSL_VERIFYPEER返回的SSL证书验证请求的结果
CURLINFO_CONTENT_LENGTH_DOWNLOAD – 从Content-Length: field中读取的下载内容长度
CURLINFO_CONTENT_LENGTH_UPLOAD – 上传内容大小的说明
CURLINFO_CONTENT_TYPE – 下载内容的Content-Type:值,NULL表示服务器没有发送有效的Content-Type: header
可以根据需要设置不同的参数。

curl获取网页内容出现乱码或为空的解决方案,另附curl_getinfo函数解析相关推荐

  1. curl抓取页面是乱码 php_php curl 获取网页内容 中文乱码

    获取是没问题..但是似乎字符编码上有些问题, //header( "Content-type:text/html;Charset=utf-8" ); $urls = [ 'http ...

  2. php curl 无法获取网页内容,php curl获取网页内容(IPV6下超时)的解决办法

    原因: 在程序中我对curl获取内容都作了较为严格的超时限制,所以就会造成无法获取内容的问题. 解决方法:设置默认访问为ipv4. php的curl设置方法如下: 代码如下: /** * IPV6下c ...

  3. php curl获取乱码,如何解决php curl获取乱码

    php curl获取乱码的解决办法:首先打开相应的脚本文件:然后获取网页文本:最后通过"b_convert_encoding($outPageTxt, 'utf-8','GB2312');& ...

  4. php curl返回结果乱码,curl获取结果乱码的解决方法

    做项目的时候,遇到curl获取的结果是乱码,找了很多资料,终于解决了,以下是解决办法,记录一下.//php脚本开始 /*POST请求远程内容函数*/ function ppost($url,$data ...

  5. php 抓取网站,php 获取网页内容的四种方法

    1,使用xmlhttp对象,类似asp中的ActiveXObject对象. 代码: //获取网页内容 $xhr = new COM("MSXML2.XMLHTTP"); $xhr- ...

  6. php 正则抓取页面内容_PHP_php获取网页内容方法总结,抓取到的内容在通过正则表达 - phpStudy...

    php获取网页内容方法总结 抓取到的内容在通过正则表达式做一下过滤就得到了你想要的内容,至于如何用正则表达式过滤,在这里就不做介绍了,有兴趣的,以下就是几种常用的用php抓取网页中的内容的方法. 1. ...

  7. VC++中使用使用winnet类获取网页内容

    2005-09-01 VC++中使用使用winnet类获取网页内容 - [VC专栏] 微软提供的Winnet类是一个应用层的网络通信组件, 它可以使你的应用程序很容易的实现http.ftp.gophe ...

  8. php获取另一个网页内容,php获取网页内容的三种方法

    本文介绍下,php实现获取网页内容的三种方法,有需要的朋友,参考下吧. 用php代码实现获取网页的原理: 将抓取内容,通过正则表达式过滤,得到想要的内容. 关于正则表达式的内容,程序员之家介绍了很多, ...

  9. 爬虫过程中解决html乱码和获取的文本乱码问题

    爬虫过程中解决html乱码和获取的文本乱码问题 response1 = requests.get(url=detail_url, headers=headers) responseText1 = re ...

最新文章

  1. 掌握 需求过程阅读笔记06
  2. 李开复从不缺席的AI夏令营开营:今年周志华俞勇张潼授课,1万人报名仅600入选...
  3. 三、初识Socket套接字结构体
  4. learning python学习小记(一)
  5. 从一个简洁的进度刻度绘制中了解自定义 View 的思路流程
  6. MATALB(三)绘图命令
  7. Java 算法 字符删除
  8. 计算机网络路由器方面的论文,简析计算机网络问题中路由器故障的论文
  9. 【IO面试题】打印目录树形结构,并输出到file.txt中
  10. WCF分布式开发常见错误解决(1):添加服务引用出错
  11. LINUX 下安装 jdk 问题(please use alien to install rpm packages on Debian )
  12. 黑马程序员顺义校区php_2018黑马整套php视频教程
  13. WPS2019 电子表格/Excel文件保护密码忘记了?
  14. 调整计算机繁体,电脑输入法是繁体怎么办?电脑输入法变成繁体的解决办法
  15. 90后凤凰男:寒门难出贵子
  16. 如何将您的iPhone更新到最新的iOS版本
  17. 概率复习 第一章 基本概念
  18. 【Windows】U 盘装系统,无法格式化所选磁盘分区[错误: 0x8004242d]
  19. 拳王虚拟项目公社:小白无脑可操作的自动化虚拟资源项目,虚拟资源自动发货的实操玩法
  20. VUE3.0从安装到应用 (2)

热门文章

  1. 效果提升7%、速度增加220%,OCR开源神器PaddleOCR再迎升级
  2. CV多任务学习笔记 yolop
  3. nanodet学习笔记 tensorrt
  4. Meshlab和CloudCompare截图时去除“旋转圈”
  5. everything 搜索盘符
  6. python多进程队列性能测试
  7. OSError: exception: access violation writing and reading
  8. opencv2生成图像的梯度图
  9. linux mysql 类型_常用的MySQL数据类型
  10. Android向上显示更多内容,如何在Android中为2个父项实现向上导航,指向1个子活动...