失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 爬取html数据中文乱码 解决PHP中file_get_contents抓取网页中文乱码问题

爬取html数据中文乱码 解决PHP中file_get_contents抓取网页中文乱码问题

时间:2020-05-14 09:31:05

相关推荐

爬取html数据中文乱码 解决PHP中file_get_contents抓取网页中文乱码问题

根据网上有朋友介绍说原因可能是服务器开了GZIP压缩。

下面是用firebug查看我的博客的头信息,Gzip是开了的。

请求头信息原始头信息

代码如下 复制代码

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Encoding gzip, deflate

Accept-Language zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

Connection keep-alive

Cookie __utma=225240837.787252530.1317310581.1335406161.1335411401.1537; __utmz=225240837.1326850415.887.3.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=%E4%BB%BB%E4%BD%95%E9%A1%B9%E7%9B%AE%E9%83%BD%E4%B8%8D%E4%BC%9A%E9%82%A3%E4%B9%88%E7%AE%80%E5%8D%95%20site%; PHPSESSID=888mj4425p8s0m7s0frre3ovc7; __utmc=225240837; __utmb=225240837.1.10.1335411401

Host

User-Agent Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/0101 Firefox/12.0

可以从header信息中找到 Content-Encoding 项是 Gzip 。

解决办法比较简单。

就是用 curl 代替 file_get_contents 去获取,然后在 curl 配置参数中加一条

代码如下 复制代码

curl_setopt($ch, CURLOPT_ENCODING, "gzip");

今天用 file_get_contents 抓图片的时候,开始没发现这个问题,废了老大劲才找出来

1. 使用自带的zlib库

如果服务器已经装了zlib库,用下面的代码可以轻易解决乱码问题。

代码如下 复制代码

$data = file_get_contents("compress.zlib://".$url);

当然也可以使用curl模块来解决人我的问题这里我给各位推荐一文章,如下你感兴趣的文章

解决ubuntu中zip解压的中文乱码问题

转自解决ubuntu中zip解压的中文乱码问题 在我的ubuntu12.10中,发现显示中文基本都是正常的,只有在解压windows传过来的zip文件时,才会出现乱码.所以,我用另一个方法解决中文乱码 ...

file_get_contents 抓取网页乱码。

iconv string iconv ( string $in_charset , string $out_charset , string $str ) mb_convert_encoding st ...

关于python的requests库抓取源文件中文乱码的情况

import requests html=requests.get('/mormhweb/') print html.text 刚开始是这么写的,运行时一直弹出错 ...

Python爬虫处理抓取数据中文乱码问题

乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件.但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了. ...

解决VSCode中Python在控制台输出中文乱码的问题

在菜单Debug->Open Configurations,打开launch.json,新增如下粉红色字符内容: { // Use IntelliSense to learn about pos ...

python 解决抓取网页中的中文显示乱码问题

关于爬虫乱码有很多各式各样的问题,这里不仅是中文乱码,编码转换.还包括一些如日文.韩文 .俄文.藏文之类的乱码处理,因为解决方式是一致的,故在此统一说明. 网络爬虫出现乱码的原因 源网页编码和爬取下来 ...

delphi 7中使用idhttp抓取网页 解决假死现象

在delphi 7中使用idhttp抓取网页,造成窗口无反应的假死状态.通过搜索获得两种方法. 1.写在线程中,但是调用比较麻烦 2.使用delphi 提供的idantifreeze(必须安装indy ...

delphi 7中使用idhttp抓取网页 解决假死现象(使用TIdAntiFreezeControl控件)

在delphi 7中使用idhttp抓取网页,造成窗口无反应的假死状态.通过搜索获得两种方法. 1.写在线程中,但是调用比较麻烦 2.使用delphi 提供的idantifreeze(必须安装indy ...

php抓取网页中的内容

以下就是几种常用的用php抓取网页中的内容的方法.1.file_get_contentsPHP代码代码如下:>>>>>>>>>>>&g ...

随机推荐

OpenGL渲染流程

一.什么是openGL OpenGL被定义为“图形硬件的一种软件接口”.从本质上说,它是一个3D图形和模型库,具有高度的可移植性,具有非常快的速度. 二.管线 管线这个术语描述了opengl渲染的整个 ...

libevent 安装异常

有homebrew的可以使用 1 brew install memcached 这个命令来安装没有homebrew的可以直接手动安装1.去官网/下载最新的包,然 ...

StreamWriter和StremReader简单的用法

string str = "中国";//写入的内容 string path = @"e:\1.txt";//文件路径 StreamWriter sw = new ...

《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇01:道路的自动生成》

1.道路的自动生成 道路自动生成概述: 3D跑酷游戏的核心就是跑,在跑这一过程中增加趣味性使得游戏具有更多的可玩性.道路的自动生成和自由拼接,为游戏增设了更多的不可预见性.这种不可预见性使得玩家在游戏 ...

SSH2配置事务的两种方式

<?xml version="1.0"encoding="UTF-8"?>

ZOJ 3635 Cinema in Akiba(线段树)

Cinema in Akiba (CIA)is a small but very popular cinema inAkihabara. Every night the cinema is ful ...

超棒的30款JS类库和工具

/article/-07-01/2816068-best-javascript-libraries-and-tools

javascript之原型(prototype)

今天是第一次写博客,写点在javascript中重要的一个概念----原型(prototype): 原型,顾名思义,就是一切事物的模板. 柏拉图在卷10中说:"床不是有 ...

使用Python实现贪心算法

题目: 圣诞节来临了,在城市A中,圣诞老人准备分发糖果.现在有多箱不同的糖果,每一种糖果都有自己的价值和重量.每箱糖果都可以拆分成任意散装组合带走.圣诞老人的驯鹿最多只能承受一定重量的糖果.请问圣诞老 ...

Java内存区域和内存溢出异常

前言 对于java程序员来说,在虚拟机自动内存管理的机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出的问题,由虚拟机管理内存,这一切看起来都很 ...

如果觉得《爬取html数据中文乱码 解决PHP中file_get_contents抓取网页中文乱码问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。