python爬虫脚本ie=utf-8_Python网络爬虫出现乱码问题的解决方法
关于爬虫乱码有很多各式各样的问题,这里不仅是中文乱码,编码转换、还包括一些如日文、韩文 、俄文、藏文之类的乱码处理,因为解决方式是一致的,故在此统一说明。
网络爬虫出现乱码的原因
源网页编码和爬取下来后的编码格式不一致。
如源网页为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网络爬虫出现乱码问题的解决方法相关推荐
- [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- [Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- Python爬虫总结——Scrapy+Gerapy部署网络爬虫
Python爬虫总结--从基础爬虫到Scrapy+Gerapy部署网络爬虫 前言 一.常用pip模块介绍 1.NumPy库 2.Pandas库 3.Requests库 4.BeautifulSoup库 ...
- c#使用正则表达式获取TR中的多个TD_[Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例...
首先祝大家中秋节和国庆节快乐,欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都 ...
- [Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- 【python爬虫 系列】1.理解网络爬虫
第一节:理解网络爬虫 1.1网络爬虫的定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.另外一些不常使用的名字还有 ...
- 【python爬虫学习篇】初识网络爬虫以及了解Web前端
目录 1,初识爬虫 1.1,网络爬虫概述 1.2,爬虫的分类 1.3,网络爬虫的基本原理 1.4,搭建开发环境 2,了解web前端 2.1,HTTP基本原理 2.1.1HTTP协议 2.1.2,Web ...
- python网络爬虫系列(八)——常见的反爬手段和解决方法
常见的反爬手段和解决思路 学习目标 了解 服务器反爬的原因 了解 服务器常反什么样的爬虫 了解 反爬虫领域常见的一些概念 了解 反爬的三个方向 了解 常见基于身份识别进行反爬 了解 常见基于爬虫行为进 ...
- 什么是网络爬虫,我们为什么要学习网络爬虫?
一.什么是网络爬虫 网络爬虫又称网络蜘蛛.网络蚂蚁.网络机器人等,可以自动化浏览网络中的信息,当然浏览信息的时候需要按照我们制定的规则进行,这些规则我们称之为网络爬虫算法.使用Python可以很方 ...
- 爬虫基础(2)网络爬虫的实现原理与技术
文章目录 一. 爬虫技术实现原理 二. 发送请求 1. 请求行 2. 请求头 3. 空行 4. 请求体 三. 获取响应内容 1. 响应行 2. 响应头 3. 空行 4. 响应体 四. 解析网页内容 1 ...
最新文章
- 华为、阿里员工跳槽至微软受抵制,微软当事人称:只是玩梗
- Django中cookie和session的存、取、删除
- 推荐一款文件搜索神器Everything!
- 05-树7 堆中的路径 (25 分)
- Android模拟器体验有感
- Linux内核模块静态加载的顺序
- java RSA加密生成license,用CPU序列号生成机器码
- -1.#IND,1.#INF 的判断
- python字符串介绍_python字符串详解
- C++ printf打印二进制,三进制,八进制,十六进制等(利用itoa)
- [独立游戏][纳税]个人独立游戏缴税纳税相关问题
- c++编译报错:ld returned 1 exit status
- 计算机word中如何加入水印?
- webpack解惑:require的五种用法
- ActiveMQ系列—ActiveMQ中的Queue和Topics
- 学Python,从入门到编程
- 【王道考研】操作系统 笔记 第二章上 进程调度
- 苹果更新一半能取消吗_苹果股价最新行情-iPhone12一半用户选蓝色 苹果股价还会继续涨吗?...
- C++数组——小鱼比可爱
- 被遗忘的SEO基础知识
热门文章
- mysql explain字段含义,MySQL(十七):EXPLAIN 输出信息之 Extra 字段解释
- python 3.9特性,Python 3.9 正式版要来了,会有哪些新特性?
- 案例详解Python变量的作用域是怎么使用的,面试必学
- Python真神奇,带你体验另类的“全自动编程”
- Python 程序员最常犯的十个错误,作为小白的你是不是也经常犯?
- php压制错误的代码,为什么要压制PHP错误?
- js中text方法是啥意识_一盏茶的时间,快速捕获JS中常用的方法(细心整理,持续更新ing)...
- php7 echo无法显示,PHP7 echo和print语句实例用法
- pycharm黄色高亮提示:Default argument value is mutable
- 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(四)