在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能。我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取。

但是在抓取过程中会遇到编码的问题,那今天我们来看一下如何判断网页的编码:

网上很多网页的编码格式都不一样,大体上是GBK,GB2312,UTF-8等。

我们在获取网页的的数据后,先要对网页的编码进行判断,才能把抓取的内容的编码统一转换为我们能够处理的编码,避免乱码问题的出现。

下面介绍两种判断网页编码的方法:

方法一:使用urllib模块的getparam方法import urllib

fopen1 = urllib.urlopen('http://www.baidu.com').info()

fopen2 = urllib.urlopen('http://www.002pc.com').info()

print fopen1.getparam('charset')# baidu

print fopen2.getparam('charset')# pythontab

002pc.com认为此文章对《python字符串转公式两种方法获取网页编码python版》说的很在理。

执行结果为:

gbk

None

PS: 呵呵,其实,上面的获取的编码都是不正确的,我们可以自己打开网页查看源代码,发现baidu的是gb2312,而pythontab是utf-8。唉,这个方法确实有点坑爹啊。检测不准确、检测不到,它都占了,所以很不靠谱,下面介绍一个靠谱的方法。

方法二:使用chardet模块#如果你的python没有安装chardet模块,你需要首先安装一下chardet判断编码的模块哦

import chardet

import urllib

#先获取网页内容

data = urllib.urlopen('http://www.002pc.com').read()

#用chardet进行内容分析

chardit = chardet.detect(data)

data1 = urllib.urlopen('http://www.baidu.com').read()

chardit1 = chardet.detect(data1)

print chardit['encoding'] # pythontab

print chardit1['encoding'] # baidu

执行结果为:

utf-8

gb2312

这两个结果都是正确的哦,各位可以去亲自验证一下~~

总结:第二个方法很准确,在网页编码分析的时候用python模块分析内容是最准确的,而使用分析meta头信息的方法是不太准确的。

更多:python字符串转公式两种方法获取网页编码python版

https://www.002pc.comhttps://www.002pc.com/python/4630.html

你可能感兴趣的python,网页,编码,获取,两种,方法

js获取按键的值详解@angular/cli 改变默认启动端口两种方式

因为本地希望开启两个项目,由于@angular/cli 生成项目默认是: 4200; 那么肯定会有端口冲突问题;

修改端口的两种方式:

1 修改 schema.json

node_modules\@

js数字变成 号在页面中引入js的两种方法(推荐)

在页面中引入js有两种基本方式:在页面中嵌入js、引用外部js文件。

一、在页面中嵌入jsW WW.002PC .COM认为此文章对《在页面中引入js的两种方法(推荐)》说的很在理。

这是在

dw怎么插入asputf-8 网页不显示+utf-8网页乱码的通用解决方法

常常会发生这样的问题:在浏览使用UTF-8编码的网页时,浏览器无法自动侦测(即没有设定“自动选择”编码格式时)该页面所用的编码。即使网

False使用mysql_fetch_row()函数逐行获取结果集中的每条记录(PHP操作MySQL数据库的方法六)

使用mysql_fetch_row()函数逐行获取结果集中的每条记录(PHP操作MySQL数据库的方法六)前面我们介绍了两种获取结果集中的数据,那么我们今天给大家介绍第三种获取结果集的mysql_f

php数字从大到小排序php实现json编码的方法

《php数字从大到小排序php实现json编码的方法》总结了关于php前端教程,对于我们来www.002pc.com确实能学到不少知识。本文实例讲述了php实现json编码的方法。分享给大家供大

linux怎么查ipCentOS 修改主机名的两种方法

第二电脑网认为此文章对《linux怎么查ipCentOS 修改主机名的两种方法》说的很在理,电脑技术002pc网为你提供最佳的linux入门,电脑技术。

asp.net 是否 对话框ASP.NET抓取网页内容的实现方法

本文实例讲述了ASP.NET抓取网页内容的实现方法。分享给大家供大家参考。

php获取数据库的title网页空白PHP区块查询实现方法分析

本文实例讲述了PHP区块查询实现方法。分享给大家供大家参考,具体如下:

分块查询是介于顺序查询和折半查询之间的一种查询方法。

其实折半查询就是每次折半的分块查询,那么分块

aes.phppython 默认编码( UnicodeDecodeError: 'ascii' codec can't decode)

python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: ‘ascii’ codec can’t decode

0踩

0 赞

python字符串成熟编码_python字符串转公式两种方法获取网页编码python版相关推荐

  1. python安装gdal包_python安装gdal的两种方法

    1.不用手动下载文件,直接执行以下命令即可 conda install gdal 2.首先,下载gdal的whl文件  链接, 官网下载比较慢,GDAL-2.2.4-cp27-cp27m-win_am ...

  2. python的三种取整方式_python 取整的两种方法

    问题简介: 要把一个浮点数(float)整数部分提取出来.比如把"2.1"变成"2"的这一过程:现在我们给这个过程起一个名字叫"取整".那么 ...

  3. Python计算程序运行时间秒级/毫秒级的两种方法datetime和time

    Python计算程序运行时间秒级/毫秒级的两种方法datetime和time 简单粗暴,先上代码: import datetime import time# 方法一:datetime.datetime ...

  4. 解析数字证书的两种方法—openssl命令和python pyopenssl模块

    本文介绍两种方法获取数字证书文件中有用的信息. 证书文件的格式有多种,包括cer,der,crt,pem等.对于这些格式的文件通常可以使用openssl来查看相关的信息并进行输出.同时openssl ...

  5. python包导入方式_python导包的几种方法(自定义包的生成以及导入详解)

    python 导入数据包的几种方法 1.直接导入整个数据包:improt 数据包 2.导入数据包中的某一个函数: from 数据包 improt 函数(当函数这一项为 * 时为导入整个数据包) 3. ...

  6. 用python打开视频_Python读取视频的两种方法(imageio和cv2)

    用python读取视频有两种主要方法,大家可依据自己的需求进行使用. 方法一: 使用imageio库,没有安装的可用pip安装或自己下载,安装好后重启终端即可调用. import pylab impo ...

  7. python 获取csv的列数_Python读取excel的两种方法

    excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...

  8. python画素描画_Python素描画的两种程序解析

    用python画素描画方式有多种,这里给大家分享常见的且操作简单的两种实现方式,一种用pillow库,一种用opencv库,这两个库的具体使用可百度,网上很多教程,这里不再赘述. 一.pillow实现 ...

  9. python向上取整的方法_python 取整的两种方法,python向上取整的方法,问题简介:  要把一...

    python 取整的两种方法,python向上取整的方法,问题简介: 要把一 问题简介: 要把一个浮点数(float)整数部分提取出来.比如把"2.1"变成"2" ...

最新文章

  1. SAP MM 采购附加费计入物料成本之二
  2. 如何通过SEO来提升网站转化率?
  3. 第1课 - make和makefile
  4. Qt: MinGW 与MSVC的区别
  5. 使用 requests 配置代理服务
  6. 搞懂 SynchronizationContext
  7. 浪客剑心:位图法Bitmap算法分析
  8. mysql 5.6.27安装图解_Linux下MySQL 5.6.27 安装教程
  9. 科技战疫丨SENSORO灵思智能安全服务助力疫情防控
  10. 基于自动图像分割算法和扩展数据集深度学习的经济作物病害识别
  11. 为了解决架构的问题,我们需要先理解敏捷的真谛
  12. iOS数据库的使用(二):sqlite教程
  13. 第1章-确定superboot210如何为smart210的nand flash进行的分区划分
  14. 最简单的php爬虫库 QueryList
  15. css子元素选择父元素的实现
  16. 大小写字母c语言,C语言 大小写字母转换
  17. 分别编写计算球的表面积和体积的函数area和volume。在主函数中输入球的半径,分别调用函数area和volume计算并输出球的表面积和体积。
  18. 紫光云这匹黑马,了解一下
  19. c语言浮点变量是什么意思,C语言中说的浮点型是什么意思呢 C语言的浮点数是什么...
  20. 软件开发生命周期(SDLC) 【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)

热门文章

  1. OpenCASCADE:形状愈合之分析
  2. boost::shared_mutex相关的测试程序
  3. boost::spirit模块实现附加语义动作的各种方法的测试程序
  4. boost::range模块heap算法相关的测试程序
  5. boost::phoenix::if_else相关的测试程序
  6. boost::mp11::mp_apply_q相关用法的测试程序
  7. boost::math模块使用根查找的示例
  8. boost::hana::just用法的测试程序
  9. boost::log模块测试样板,用于检查每个公共标头是否都是独立的并且没有任何缺失的 #includes
  10. boost::geometry::tag用法的测试程序