【Python爬虫】用urllib请求一个网页,响应的content中中文为16进制,如何转换为中文

问题:在学习Python爬虫一开始,利用python自带urllib模块请求一个网页时,响应的content中中文为16进制,如何转换为中文。

环境:WIN10+Python3.6

代码:

#~ coding=utf-8
#~ 使用Pyton内建模块 urllib 请求一个 URL 代码示例
import ssl

from urllib.request import Request
from urllib.request import urlopen

#使用ssl创建未经验证的上下文,在urlopen中传入上下文参数
context = ssl._create_unverified_context()

#~ HTTP请求
request = Request(url = 'https://me.csdn.net/chengyikang20',
				  method = 'GET',
				  headers = {'Host':'me.csdn.net'},
				  data = None)
			
#~ HTTP响应
response = urlopen(request, context=context)
headers = response.info()#响应头
content = response.read()#响应体
code = response.getcode()#状态码

print('headers='+str(headers)+'\n\n')
print('content='+str(content)+'\n\n')
print('code='+str(code)+'\n')

输出结果:

 可以看出中文字符转换为16进制,不好看。

解决方法:

很简单,只需要将read()用‘utf-8’解码即可。

content = response.read().decode('utf-8')#响应体

效果:

可以看到 这样的输出更加美观,可读性强。

猜你喜欢

转载自blog.csdn.net/chengyikang20/article/details/85914642