位置: 编程技术 - 正文

浅谈Python爬取网页的编码处理(python3.9爬取网页教程)

编辑:rootadmin

推荐整理分享浅谈Python爬取网页的编码处理(python3.9爬取网页教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何利用python爬取网页内容,python爬取网址,python爬取网址,python爬虫爬取网页,用python爬取网站数据,python爬取网址,用python爬取网站数据,利用python爬取简单网页数据步骤,内容如对您有帮助,希望把文章链接给更多的朋友!

背景

中秋的时候,一个朋友给我发了一封邮件,说他在爬链家的时候,发现网页返回的代码都是乱码,让我帮他参谋参谋(中秋加班,真是敬业= =!),其实这个问题我很早就遇到过,之前在爬小说的时候稍微看了一下,不过没当回事,其实这个问题就是对编码的理解不到位导致的。

问题

很普通的一个爬虫代码,代码是这样的:

目的其实很简单,就是爬一下链家的内容,但是这样执行之后,返回的结果,所有涉及到中文的内容,全部会变成乱码,比如这样

这样的数据拿来可以说毫无作用。

问题分析

这里的问题很明显了,就是文字的编码不正确,导致了乱码。

查看网页的编码

从爬取的目标网页的头来看,网页是用utf-8来编码的。

所以,最终的编码,我们肯定也要用utf-8来处理,也就是说,最终的文本处理,要用utf-8来解码,也就是:decode('utf-8')

文本的编码解码

Python的编码解码的过程是这样的,源文件 ===》 encode(编码方式) ===》decode(解码方式),在很大的程度上,不推荐使用

这种方式来硬处理文字编码。不过在某些时候不影响的情况下,偷偷懒也不是什么大问题,不过比较建议的就是获取源文件之后,使用encode和decode的方式来处理文本。

浅谈Python爬取网页的编码处理(python3.9爬取网页教程)

回到问题

现在问题最大的是源文件的编码方式,我们正常使用requests的时候,它会自动猜源文件的编码方式,然后转码成Unicode的编码,但是,毕竟是程序,是有可能猜错的,所以如果猜错了,我们就需要手工来指定编码方式。官方文档的描述如下:

When you make a request, Requests makes educated guesses about the encoding of the response based on the HTTP headers. The text encoding guessed by Requests is used when you access r.text. You can find out what encoding Requests is using, and change it, using the r.encoding property.

所以我们需要查看requests返回的编码方式到底是什么?

打印的结果如下:

ISO--1

也就是说,源文件使用的是ISO--1来编码。百度一下ISO--1,结果如下:

ISO-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。

问题解决

发现了这个东东,问题就很好解决了,只要指定一下编码,就能正确的打出中文了。代码如下:

打印的结果就很明显,中文都正确的显示出来了。

另一种方式是在源文件上做解码和编码,代码如下:

另:ISO--1也叫做latin1,使用latin1做解码结果也是正常的。

关于字符的编码,很多东西可以说,想了解的朋友可以参考以下大神的资料。

&#;《The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)》

以上这篇浅谈Python爬取网页的编码处理就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

基于Python的接口测试框架实例 背景最近公司在做消息推送,那么自然就会产生很多接口,测试的过程中需要调用接口,我就突然觉得是不是可以自己写一个测试框架?说干就干,由

Python+MongoDB自增键值的简单实现 背景最近在写一个测试工具箱,里面有一个bug记录系统,因为后台我是用Django和MongoDB来实现的,就遇到了一个问题,要如何实现一个自增的字段。传统

django1.8使用表单上传文件的实现方法 Python下有许多款不同的Web框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Pytho

标签: python3.9爬取网页教程

本文链接地址:https://www.jiuchutong.com/biancheng/383450.html 转载请保留说明!

上一篇:Django接受前端数据的几种方法总结(django 接收前端的json)

下一篇:基于Python的接口测试框架实例(python接口编写)

  • 二手车过户需要带什么资料
  • 代扣个税怎么做凭证
  • 一般纳税人的增值税征收方式的特点是
  • 个人所得税减除费用6万元什么意思
  • 应付账款不需要付怎样做会计分录
  • 外地施工如何找工人
  • 应交税金应交增值税已交税金怎么结转
  • 多交税款如何处罚
  • 企业合并的相关税费计入哪里
  • 个税申报包含哪些
  • 长期借款科目核算的是企业的长期借款本金和利息
  • 固定资产如何抵扣企业所得税
  • 公司支付倒垃圾费怎么做会计分录
  • 餐饮公司收到的拍摄服务票做什么费用
  • 出口企业是外贸企业吗
  • 国税开增值税专票怎么开
  • 小规模增值税多少个点
  • 应征增值税不含税销售额(3%征收率)怎么算
  • 投资收益税前扣除标准
  • 什么是劳动保护费支出
  • 注册资本转让股权
  • 外购存货成本包括哪些
  • 防暑降温费如何做账
  • 汇算清缴做完还能改账么
  • 笔记本电脑的触摸板怎么用右键
  • 经营性租赁 会计准则
  • Thinkphp5+PHPExcel实现批量上传表格数据功能
  • 建筑业总产值和营业收入相等吗?
  • 限额领料单属于外来原始凭证吗
  • 短期借款和短期贷款
  • autoreg.exe
  • php语言标记风格有四种,分别是
  • 购买用友财务软件
  • 对于企业已经入账而银行尚未入账
  • 先开票还是先付款最新规定
  • html里写php
  • 驼鹿穿过莫兰山了吗
  • 公司房产处置
  • next frame
  • 工商变更后税务会自动变更吗
  • pytorch例程
  • uniapp简介
  • 公司之间借款利息需要开票吗
  • 出口企业的出口比例怎么算
  • 预付和挂账怎么做分录
  • 税前补发补扣
  • 业务招待费是否计入管理费用
  • 教育类财务工作内容
  • 厂房改造费用算固定资产吗
  • mysql日志文件在哪
  • 所得税怎么收取
  • 跨年银行回单怎么入账
  • 代开普通发票需提供哪些材料?
  • 招待费发票可以开专票吗
  • 固定资产盘亏造成的损失计入什么科目
  • 汽车固定资产清理怎么交税
  • 网络销售还可以叫什么
  • 固定资产计提折旧的会计科目
  • 进项增值税发票抵扣期限
  • 税率调整后税差怎么算
  • 公司注册代理费用标准
  • 毛利和净利的区别大白话
  • Mysql 5.6.37 winx64安装双版本mysql笔记记录
  • windows任务管理器怎么打开
  • Win10 Mobile 10536预览版用得越久越卡顿是怎么回事?
  • 怎么用手机号查快递
  • 今后64位Win10 Mobile将是未来重点
  • mac开机密码怎么取消
  • centos7如何添加光盘
  • centos7.6安装kvm
  • centos设置ftp
  • Default style sheet for HTML 4
  • cocos2dx4.0入门
  • jquery crud
  • python解析函数
  • android 分辨率适配
  • js 字符串转字节
  • 发票专用章盖在哪里
  • 公司如何制定制度
  • 包装种类代码表集装箱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设