关于爬虫乱码有很多各式各样的问题,这里不仅是中文乱码,编码转换、还包括一些如日文、韩文 、俄文、藏文之类的乱码处理,因为解决方式是一致的,故在此统一说明。

网络爬虫出现乱码的原因

源网页编码和爬取下来后的编码格式不一致。

如源网页为gbk编码的字节流,而我们抓取下后程序直接使用utf-8进行编码并输出到存储文件中,这必然会引起乱码 即当源网页编码和抓取下来后程序直接使用处理编码一致时,则不会出现乱码; 此时再进行统一的字符编码也就不会出现乱码了

注意区分

源网编码A、

程序直接使用的编码B、

统一转换字符的编码C。

乱码的解决方法

确定源网页的编码A,编码A往往在网页中的三个位置

1.http header的Content-Type

获取服务器 header 的站点可以通过它来告知浏览器一些页面内容的相关信息。 Content-Type 这一条目的写法就是 "text/html; charset=utf-8"。

2.meta charset

3.网页头中Document定义

在获取源网页编码时,依次判断下这三部分数据即可,从前往后,优先级亦是如此。

以上三者中均没有编码信息 一般采用chardet等第三方网页编码智能识别工具来做

安装: pip install chardet

Python chardet 字符编码判断

使用 chardet 可以很方便的实现字符串/文件的编码检测 虽然HTML页面有charset标签,但是有些时候是不对的。那么chardet就能帮我们大忙了。

chardet实例

chardet可以直接用detect函数来检测所给字符的编码。函数返回值为字典,有2个元素,一个是检测的可信度,另外一个就是检测到的编码。

在开发自用爬虫过程中如何处理汉字编码?

下面所说的都是针对python2.7,如果不加处理,采集到的都是乱码,解决的方法是将html处理成统一的utf-8编码 遇到windows-1252编码,属于chardet编码识别训练未完成

python代码文件的编码

py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character。需要在代码文件的第一行添加编码指示:

像上面那样直接输入的字符串是按照代码文件的编码'utf-8'来处理的

如果用unicode编码,以下方式:

s1 = u'中文' #u表示用unicode编码方式储存信息

decode是任何字符串具有的方法,将字符串转换成unicode格式,参数指示源字符串的编码格式。

encode也是任何字符串具有的方法,将字符串转换成参数指定的格式。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

python爬虫脚本ie=utf-8_Python网络爬虫出现乱码问题的解决方法相关推荐

  1. [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  2. [Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  3. Python爬虫总结——Scrapy+Gerapy部署网络爬虫

    Python爬虫总结--从基础爬虫到Scrapy+Gerapy部署网络爬虫 前言 一.常用pip模块介绍 1.NumPy库 2.Pandas库 3.Requests库 4.BeautifulSoup库 ...

  4. c#使用正则表达式获取TR中的多个TD_[Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例...

    首先祝大家中秋节和国庆节快乐,欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都 ...

  5. [Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  6. 【python爬虫 系列】1.理解网络爬虫

    第一节:理解网络爬虫 1.1网络爬虫的定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.另外一些不常使用的名字还有 ...

  7. 【python爬虫学习篇】初识网络爬虫以及了解Web前端

    目录 1,初识爬虫 1.1,网络爬虫概述 1.2,爬虫的分类 1.3,网络爬虫的基本原理 1.4,搭建开发环境 2,了解web前端 2.1,HTTP基本原理 2.1.1HTTP协议 2.1.2,Web ...

  8. python网络爬虫系列(八)——常见的反爬手段和解决方法

    常见的反爬手段和解决思路 学习目标 了解 服务器反爬的原因 了解 服务器常反什么样的爬虫 了解 反爬虫领域常见的一些概念 了解 反爬的三个方向 了解 常见基于身份识别进行反爬 了解 常见基于爬虫行为进 ...

  9. 什么是网络爬虫,我们为什么要学习网络爬虫?

    ​ 一.什么是网络爬虫 网络爬虫又称网络蜘蛛.网络蚂蚁.网络机器人等,可以自动化浏览网络中的信息,当然浏览信息的时候需要按照我们制定的规则进行,这些规则我们称之为网络爬虫算法.使用Python可以很方 ...

  10. 爬虫基础(2)网络爬虫的实现原理与技术

    文章目录 一. 爬虫技术实现原理 二. 发送请求 1. 请求行 2. 请求头 3. 空行 4. 请求体 三. 获取响应内容 1. 响应行 2. 响应头 3. 空行 4. 响应体 四. 解析网页内容 1 ...

最新文章

  1. 华为、阿里员工跳槽至微软受抵制,微软当事人称:只是玩梗
  2. Django中cookie和session的存、取、删除
  3. 推荐一款文件搜索神器Everything!
  4. 05-树7 堆中的路径 (25 分)
  5. Android模拟器体验有感
  6. Linux内核模块静态加载的顺序
  7. java RSA加密生成license,用CPU序列号生成机器码
  8. -1.#IND,1.#INF 的判断
  9. python字符串介绍_python字符串详解
  10. C++ printf打印二进制,三进制,八进制,十六进制等(利用itoa)
  11. [独立游戏][纳税]个人独立游戏缴税纳税相关问题
  12. c++编译报错:ld returned 1 exit status
  13. 计算机word中如何加入水印?
  14. webpack解惑:require的五种用法
  15. ActiveMQ系列—ActiveMQ中的Queue和Topics
  16. 学Python,从入门到编程
  17. 【王道考研】操作系统 笔记 第二章上 进程调度
  18. 苹果更新一半能取消吗_苹果股价最新行情-iPhone12一半用户选蓝色 苹果股价还会继续涨吗?...
  19. C++数组——小鱼比可爱
  20. 被遗忘的SEO基础知识

热门文章

  1. mysql explain字段含义,MySQL(十七):EXPLAIN 输出信息之 Extra 字段解释
  2. python 3.9特性,Python 3.9 正式版要来了,会有哪些新特性?
  3. 案例详解Python变量的作用域是怎么使用的,面试必学
  4. Python真神奇,带你体验另类的“全自动编程”
  5. Python 程序员最常犯的十个错误,作为小白的你是不是也经常犯?
  6. php压制错误的代码,为什么要压制PHP错误?
  7. js中text方法是啥意识_一盏茶的时间,快速捕获JS中常用的方法(细心整理,持续更新ing)...
  8. php7 echo无法显示,PHP7 echo和print语句实例用法
  9. pycharm黄色高亮提示:Default argument value is mutable
  10. 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(四)