抓取网页数据违法吗(一下如何判断网页的编码:网上很多编码都不一样)
优采云 发布时间: 2021-11-11 09:18抓取网页数据违法吗(一下如何判断网页的编码:网上很多编码都不一样)
在web开发中,我们经常会遇到网页的爬取和分析,可以用各种语言来完成。我喜欢用python来实现,因为python提供了很多成熟的模块,可以轻松实现网络爬虫。
但是在爬取的过程中会遇到编码问题。今天我们就来看看如何判断一个网页的编码:
网上很多网页都有不同的编码格式,一般是GBK、GB2312、UTF-8等。
我们在获取到网页的数据后,首先要判断网页的编码,然后才能将抓取到的内容的编码统一转换为我们可以处理的编码,避免出现乱码问题。
方法一:使用urllib模块的getparam方法
1 importurllib2 #auto:
3 fopen1 = urllib.urlopen('#39;).info() 4 打印 fopen1.getparam('charset')#baidu
实施结果如下:
国标
哈哈,其实上面得到的代码都是错误的。我们可以打开网页查看源码,发现百度是gb2312。唉,这个方法确实有点作弊。检测不准确,无法检测。它占了它,所以它是非常不可靠的。这里有一个可靠的方法。
方法二:使用chardet模块
1 #如果你的python没有安装chardet模块,需要先安装chardet判断编码模块
2 #作者:
3 importchardet4 importurllib5 #先获取网页内容
6 data1 = urllib.urlopen('#39;).read()7 #使用chardet进行内容分析
8 chardit1 =chardet.detect(数据1)9
10 打印 chardit1['encoding'] #baidu
实施结果如下:
gb2312
这个结果是正确的,你可以自己验证一下~~
总结:第二种方法很准确。使用python模块分析网页编码分析的内容是最准确的,而分析元头信息的方法不是很准确。