基本知识

计算机只能处理数字,所以将一个数字对应一个符号,所以不同的数字对应不同符号的方式有不同为不同编码方式。

ASCII码 :英文字符和二进制数字之间的关系。一个符号为一个字节(byte),一个字节是8位(bit),所以总体共可以组合为2的8次方也就是256种状态。对于英文字符是足够表示了,然而对于汉字和其他国家256个符号时不够的。
gb2312 : 中文字符和二进制数字之间的对应关系。一个符号为两个字节,共16位,可以表示256*256个汉字。
Shift_JIS : 日文和二进制数字之间对应的关系。
Unicode : 不同国家的编码方式使得同一个二进制数字对应不同的字符,在多语言的文本中很有可能出现乱码。为了使得各国语言能够顺利进行文本转化与处理,有人发明了Unicode编码方式。Unicode被称为统一码,它为每个国家的符号都提供了唯一的二进制数字的对应关系。
UTF-8 : Unicode为了表示各种字符,所以占有字符的空间比较大。比如说ASCII码为一个字节,而Unicode通常是两个字节,这时候表示ASCII码时就会出现一个字节的空间浪费现象,所设计了节省空间的一些中间格式的字符集,被称为通用转换格式UTF(Unicode Transformation Format),UTF-8就是这种节省空间长度可变的格式。

爬取网页遇到的中文乱码

如下图所示,网页的内容时乱码的,不能识别

可能原因:
(1).网页采用GB2312的方式编码
查看网页源代码的头部,如果是如下图charset=geb2312的方式编码,则说明是中文乱码的原因。

解决办法:
获得内容后,将内容进行重新编码,使用Python爬虫进行爬取时,解决的具体代码是:

#已知网页的url和headers,使用requests获取网页
r = requests.get(url, headers=headers)
#对网页进行gb2312解码
r.encoding('gb2312')
print(r.text)

(2)网页进行了gzip压缩
进行网页查看的时候,网页头部是正常的,不是因为gb2312的编码原因,如下图所示,这是网页可能是因为使用了gzip方式压缩了。

解决方法:对网页解压缩,解压缩的方式如下:

#已知网页的url和headers,使用requests获取网页
r =requests.get(url, headers=headers)
#进行解码
content = r.content.decode('UTF-8')
print(content.text)

解决后的结果如图所示

爬取网页中文乱码的问题相关推荐

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

    根据网上有朋友介绍说原因可能是服务器开了GZIP压缩. 下面是用firebug查看我的博客的头信息,Gzip是开了的. 请求头信息原始头信息 代码如下 复制代码 Accept text/html,ap ...

  2. Python3爬取网页信息乱码怎么解决?(更新:已解决)

    更新:乱码问题已经解决了. 将下面代码中的红色部分改为下面这样就不会出现个别职位信息乱码的情况了. soup2 = BeautifulSoup(wbdata2, 'html.parser',from_ ...

  3. python爬取内容乱码_python爬取html中文乱码

    环境: python3.6 爬取代码: import requests url = 'https://www.dygod.net/html/tv/hytv/' req = requests.get(u ...

  4. python爬取html中文乱码

    环境: python3.6 爬取网址:https://www.dygod.net/html/tv/hytv/ 爬取代码: import requestsurl = 'https://www.dygod ...

  5. python爬取网页有乱码怎么解决_Python爬取网页requests乱码

    **之前有在裁判文书上爬取数据,这段时间重新运行爬虫后发现无法获取网页数据, 找了一下发现requests网页源码返回的是乱码** (如下截取一部分返回的数据: 不知道是不是网站对网页内容进行了加密, ...

  6. python爬取网页有乱码怎么解决_python - 爬虫获取网站数据,出现乱码怎么解决。...

    问 题 #!/usr/bin/python # -*- coding: utf-8 -*- import urllib2 import re import HTMLParser class WALLS ...

  7. 网页爬虫 python-python爬虫——爬取网页的中文

    # 爬取网页的中文内容 from urllib import request from bs4 import BeautifulSoup import pandas as pds import xlr ...

  8. python爬虫——爬取网页的中文

    # 爬取网页的中文内容 from urllib import request from bs4 import BeautifulSoup import pandas as pds import xlr ...

  9. Java两种方式简单实现:爬取网页并且保存

    注:如果代码中有冗余,错误或者不规范,欢迎指正. Java简单实现:爬取网页并且保存 对于网络,我一直处于好奇的态度.以前一直想着写个爬虫,但是一拖再拖,懒得实现,感觉这是一个很麻烦的事情,出现个小错 ...

最新文章

  1. python基础知识面试题-基础篇--【python】面试题汇总
  2. Java线程详解(2)-创建与启动
  3. 【排序算法】— 手写堆排序
  4. AutoML Vision教程:训练模型解决计算机视觉问题,准确率达94.5%
  5. 组件注入 # 注入的属性_注入域对象而不是基础结构组件
  6. 投影元素直接隔离_摸着夜色上露台开投影,是巴塞罗那设计师的浪漫
  7. 边缘设备上的实时AI人员检测:在Raspberry Pi上启动SSD
  8. 工程计算软件_软件工程师的计算机基础理论知识体系
  9. echart 不立即更新 解决首次加载动画问题 vue watch immediate
  10. 20190806:字符串解密
  11. 今天遇到一个SQL的问题
  12. Chrome插件管理、在线离线安装方式、部分插件介绍
  13. Path.Combine 合并两个路径字符串,会出现的问题
  14. w ndows10怎么关闭启动项,Windows10系统移除启动项无用项目的三种方法
  15. Contest2257 - 抗击疫情,从我做起--大中小学生联合训练赛第五十二场
  16. vue中使用echart实现三维立体图
  17. 【数仓】数据仓库高频面试题题英文版(1)
  18. #459 津津有味:北方人对饺子的痴迷可能是刻进骨子里的
  19. 使用BENCHMARKSQL工具对kingbase灌数据执行语句删除这些外键时报错constraint does not exist
  20. 南阳oj入门题-蛇形填数

热门文章

  1. Groovy快速入门-12-Groovy如何读文件内容和写入文件
  2. Photoshopnbsp;路径文字排版
  3. 每日新闻:中关村六大重点技术领域收入前三季增16.1%;云计算将是政企客户重构IT的关键技术;明年推广电子客票,可凭身份证坐火车...
  4. IPad C盘中backup文件夹占用太多空间
  5. Windows服务器的优势和功能有哪些
  6. friction PHP,歌曲 Friction MP3,在线试听,下载 Imagine Dragons 外语歌曲网
  7. 甘肃临夏扶贫贷款助贫困农户“无牛羊不成家”
  8. 纯css3逼真蜡烛火苗燃烧动画js特效
  9. Mac OS X 背后的故事(六)Cordell Ratzlaff 引发的 Aqua 革命(上)
  10. DSX2-8000维修服务