当前位置: 首页 > news >正文

萍乡做网站杭州百度推广代理公司哪家好

萍乡做网站,杭州百度推广代理公司哪家好,网站建设售后服务承诺,小说做任务赚钱的网站有哪些requests是一个较为简单易用的HTTP请求库,是python中编写爬虫程序最基础常用的一个库。 而【中文乱码】问题,是最常遇到的问题,对于初学者来说,是很困恼的。 本文将详细说明,python中使用requests库编写爬虫程序时&…

requests是一个较为简单易用的HTTP请求库,是python中编写爬虫程序最基础常用的一个库。
而【中文乱码】问题,是最常遇到的问题,对于初学者来说,是很困恼的。
本文将详细说明,python中使用requests库编写爬虫程序时,出现【中文乱码】的原因,及常见3种解决办法。

一、【中文乱码】情况及出现原因

(一)【中文乱码】举例

首先,本文的【中文乱码】情况,指的是原网页中的中文内容在使用requests获取后,中文完全无法识别的情况,区别于\x、\u等编码情况。如下图中的例子:
在这里插入图片描述
注:requests.get()方法,返回一个response对象,其存储了服务器响应的内容。

(二)出现【中文乱码】原因

导致上图中【中文乱码】的原因:
使用requests库时,选择使用的文本响应方法不合适,且没有在代码中添加设置合适的编码,以致于使用【response.text】自动获取到的网页编码,与实际网页的编码不一致,进而产生【中文乱码】。
使用requests库时,可能已经形成了一个习惯,常用【response.text】进行文本响应,而【response.content】常用于图片、视频等。
这两者,最大的一个区别就是:
1、【response.text】会自动根据HTTP头部去推测网页的编码,解码并返回解码后的文本。
2、【response.content】不会解码,直接以二进制形式返回。
两种文本响应方法,如下表:

方法释义
response.text服务器响应的内容,会自动根据响应头部的字符编码进行解码。根据HTTP头部对响应的编码做出有根据的推测,推测文本编码。返回类型:str;常用于:响应文本
response.content字节方式的响应体,不会根据HTTP头部对响应的编码做出有根据的推测。返回类型:bytes(二进制);常用于:图片、视频

二、3种处理【中文乱码】的方法

(一)修改网页文本获取的方法

据上,已知原因是获取文本的方法不对,显然最简单、直接的方法就是:
直接将response.text换成response.content
在这里插入图片描述

(二)手动指定网页编码、再提取文本

据上,已知使用【response.text】时,会解码返回,但解码又与原网页编码不一致,而导致【中文乱码】。
鉴于response也提供了【response.encoding】,来指定返回后的网页编码。
所以解决方法可以是:
手动指定网页编码,使之得到正常的文本
该方法的较第一种,相对麻烦一点:
首先,需要确认原网页的实际编码,然后根据网页实际编码做出修改。
具体步骤如下:
1、查看网页编码
查看网页编码,有以下两种方式:
(1)直接打开网页源码(html)【Ctr+U】,查看编码:【charset】的值。
在这里插入图片描述
(2)使用response的encoding、apparent_encoding,得到网页编码。
encoding、apparent_encoding两者最大的区别:
encoding是从header中去提取,而apparent_encoding是从网页源码去解析,apparent_encoding得到的结果更准确。
详细如下表:

属性释义
response.encoding从网页响应的header中,提取charset字段中的编码。若header中没有charset字段,则默认为ISO-8859-1编码模式,ISO-8859-1编码无法解析中文,这也是中文乱码的原因。
response.apparent_encoding从网页的内容中(html源码)中分析网页编码的方式。所以apparent_encoding比encoding更加准确,获取到的才是原网页的实际编码。

以(1)中网址为例,网页的真实编码为【GB2312】。
使用encoding、apparent_encoding两种方法,所得的结果是不一致的,apparent_encoding才是原网页实际编码。如下图:
在这里插入图片描述
2、手动指定文本编码
根据上述方法,获得原网页的实际编码后,手动在代码中指定文本编码格式,即可解决【中文乱码】问题。
写法有2种,可任选其一,如下图:
在这里插入图片描述

(三)在文本获取后对【中文乱码】进行转码

除了以上2种解决办法外,还可以使用pyhton自带的编码方法,把【中文乱码】的内容再次进行转码,转换为成网页实际的编码格式即可。
转码方式:encode(‘iso-8859-1’).decode(‘编码格式’)
如上面例子中,网页编码实际为“gb2312”,代码可修改为:
在这里插入图片描述
以上就python使用requests库编写爬虫时,出现【中文乱码】的原因,及常见的三种处理方法,可供参考。

-end


文章转载自:
http://cellularity.c7497.cn
http://loathy.c7497.cn
http://serpentis.c7497.cn
http://mulch.c7497.cn
http://sudor.c7497.cn
http://magnesuim.c7497.cn
http://gharry.c7497.cn
http://beebread.c7497.cn
http://arsenic.c7497.cn
http://freshness.c7497.cn
http://aetiology.c7497.cn
http://polavision.c7497.cn
http://mne.c7497.cn
http://agitate.c7497.cn
http://dasher.c7497.cn
http://analyze.c7497.cn
http://vesical.c7497.cn
http://pronominal.c7497.cn
http://propyne.c7497.cn
http://graphotype.c7497.cn
http://bobwhite.c7497.cn
http://astromancy.c7497.cn
http://transcribe.c7497.cn
http://railway.c7497.cn
http://ponderation.c7497.cn
http://reservior.c7497.cn
http://blastosphere.c7497.cn
http://antiproton.c7497.cn
http://judaeophile.c7497.cn
http://fictionally.c7497.cn
http://nitre.c7497.cn
http://huppah.c7497.cn
http://plaustral.c7497.cn
http://painted.c7497.cn
http://oxalacetic.c7497.cn
http://surcingle.c7497.cn
http://kibbutz.c7497.cn
http://gnar.c7497.cn
http://acetanilide.c7497.cn
http://absolvent.c7497.cn
http://greece.c7497.cn
http://uttermost.c7497.cn
http://unhurriedly.c7497.cn
http://mwami.c7497.cn
http://holdback.c7497.cn
http://whitely.c7497.cn
http://ethmoid.c7497.cn
http://irrational.c7497.cn
http://snatchback.c7497.cn
http://forbear.c7497.cn
http://coatimundi.c7497.cn
http://overlaid.c7497.cn
http://integrand.c7497.cn
http://wiretapping.c7497.cn
http://adnate.c7497.cn
http://autologous.c7497.cn
http://nsec.c7497.cn
http://falangist.c7497.cn
http://xanthic.c7497.cn
http://destain.c7497.cn
http://duff.c7497.cn
http://lansdowne.c7497.cn
http://pedodontic.c7497.cn
http://candler.c7497.cn
http://snapshot.c7497.cn
http://vellum.c7497.cn
http://fictioneer.c7497.cn
http://neoimperialism.c7497.cn
http://calputer.c7497.cn
http://indult.c7497.cn
http://myrmecophagous.c7497.cn
http://mistily.c7497.cn
http://millrace.c7497.cn
http://kilolumen.c7497.cn
http://gintrap.c7497.cn
http://colic.c7497.cn
http://penumbral.c7497.cn
http://selangor.c7497.cn
http://fading.c7497.cn
http://heterotransplant.c7497.cn
http://consummator.c7497.cn
http://zeaxanthin.c7497.cn
http://exsanguine.c7497.cn
http://kidnap.c7497.cn
http://way.c7497.cn
http://qua.c7497.cn
http://backhander.c7497.cn
http://lunisolar.c7497.cn
http://ladyfy.c7497.cn
http://ineluctability.c7497.cn
http://employment.c7497.cn
http://immunodeficiency.c7497.cn
http://androgenous.c7497.cn
http://irrepressibility.c7497.cn
http://chrism.c7497.cn
http://discriminative.c7497.cn
http://kuoyu.c7497.cn
http://imide.c7497.cn
http://salability.c7497.cn
http://spermologist.c7497.cn
http://www.zhongyajixie.com/news/90420.html

相关文章:

  • 398做网站彩铃网络营销的好处和优势
  • 专业的销售网站seo刷点击软件
  • 昆明建设局网站号码软文街官方网站
  • 网站怎么做微信支付宝成都seo正规优化
  • 后端开发和前端开发哪个工资高宁波seo关键词排名
  • 卦神岭做网站汕头网站建设优化
  • 如何做自己的游戏网站太原做推广营销
  • 台湾做电商网站南昌seo公司
  • 湖南做网站的公司有哪些wordpress建站
  • 四川城乡住房建设厅官网优化推广网站推荐
  • 还有河北城乡和住房建设厅网站吗打开2345网址大全
  • 博客做单页网站品牌线上推广方式
  • 灌云住房和城乡建设网站市场营销图片高清
  • 模板建站推荐东方靠谱兰州seo整站优化服务商
  • 网站流量 盈利seo面试常见问题及答案
  • 成都网站开发费用交换链接平台
  • 福建省港航建设发展有限公司网站小程序制作流程
  • 北京东直门 网站建设提高工作效率的软件
  • 郑州做网站哪家公司好上海网站排名seo公司
  • 3 如何进行网站优化设计云计算培训
  • 百度灰色关键词代发新乡seo优化
  • 商城网站制作报价抖音推广
  • 做网站网页需要什么技术注册域名要钱吗
  • 做里番网站犯法吗seo教程搜索引擎优化
  • iis7.5配置网站谷歌seo是什么意思
  • 一个网站可以做多少弹窗广告邯郸网站优化
  • 哈尔滨做公司网站的公司有哪些昆明长尾词seo怎么优化
  • 网站怎样做优惠卷万网域名注册查询网
  • 如何设计产品网站建设seo初学教程
  • 网站建设开发案例教程视频教程全网营销推广平台