首页 > 其他分享 >解决“网页源代码编码形式为utf-8,但爬虫代码设置为decode('utf-8')仍出现汉字乱码”的问题

解决“网页源代码编码形式为utf-8,但爬虫代码设置为decode('utf-8')仍出现汉字乱码”的问题

时间:2024-07-10 17:45:51浏览次数:18  
标签:content utf urllib 乱码 源代码 response decode

为了用爬虫获取百度首页的源代码,检查了百度的源代码,显示编码格式为utf-8

但这样写代码,却失败了…..

(这里提示:不要直接复制百度的URL,应该是http,不是https!!!)

# 获取百度首页的源码
import urllib.request

#(1)定义一个URL
url='http://www.baidu.com'

#(2)模拟浏览器向服务器发送请求 要在联网的前提下!
response=urllib.request.urlopen(url)

# (3)获取响应中的页面的源码
# 将二进制转化为字符串,也就是解码 decode('对应页面编码的格式')
content=response.read().decode('utf-8')

# (4)打印数据
print(content)

经过查阅资料,发现这样就可以了!成功的代码如下

import urllib.request
import chardet

# 定义一个URL
url = 'http://www.baidu.com'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

# 获取响应中的页面的源码
content = response.read()

# 检测编码
encoding = chardet.detect(content)['encoding']

# 将二进制转化为字符串,也就是解码
content = content.decode(encoding)

# 打印数据
print(content)

标签:content,utf,urllib,乱码,源代码,response,decode
From: https://www.cnblogs.com/lxxa/p/18294642

相关文章