问题描述
response = utils.send_request('http://www.crha.cn/gzdt.html')
print(response.text)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>å·¥ä½�å�¨æ��â��ä¸å�½ç �究å��å�»é�¢å¦ä¼�</title>
<meta name="Keywords" content="å·¥ä½�å�¨æ��,ä¸å�½ç �究å��å�»é�¢å¦ä¼�,ç �究å��å�»é�¢å¦ä¼�,ç �究å��å�»é�¢,ç �究å��å�»é�¢å»ºè®¾" />
<meta name="Description" content="ä¸å�½ç �究å��å�»é�¢å¦ä¼�æ�¯å¸®å�©ç �究å��å�»é�¢æ��建â��临åº�é�®é¢�â��å®�éª�ç �究â��临åº�æ²»ç��â��循ç�¯æ�°æ�ºå�¶ï¼�å½¢æ��å�»è�¯ç»�å��ã��å�»å·¥ç»�å��ã��å�ºç¡�ä¸�临åº�ç»�å��ã��ç �究ä¸�转å��ç�¸é
�å¥�ç��ç§�æ��å��æ�°æ¨¡å¼�ï¼�ä¿�è¿�ç �究å��å�»é�¢æ��为ç��é�¾å�±é��ç�
ç��ç��è¯�ç��å�ºå�°ã��é«�æ�°è�¯ç�©è®¾å¤�ç��ç �å��å�ºå�°ã��å
�è¿�å�»ç��æ��æ�¯ç��å��æ�°å�ºå�°å��å�»å¦ç§�æ��ä¿¡æ�¯ç��交æµ�å�ºå�°ã��" />
<meta http-equiv="x-ua-compatible" content="ie=emulateie7" />
<link href="/Css/Style.css" rel="stylesheet" type="text/css" />
</head>
...
原因分析
Python 终端的编码方式是 UTF-8 ,而 HTML 编码方式并不是 UTF-8 (可通过 response.encoding
查询页面编码格式),所以中文产生了乱码
解决方案
response = utils.send_request('http://www.crha.cn/gzdt.html')
print(response.encoding) # 1.查询页面的编码方式,此处为 ISO-8859-1
print(response.text.encode('ISO-8859-1').decode('utf-8')) # 2.解码再编码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>工作动态—中国研究型医院学会</title>
<meta name="Keywords" content="工作动态,中国研究型医院学会,研究型医院学会,研究型医院,研究型医院建设" />
<meta name="Description" content="中国研究型医院学会是帮助研究型医院构建“临床问题―实验研究―临床治疗”循环新机制,形成医药结合、医工结合、基础与临床结合、研究与转化相配套的科技创新模式,促进研究型医院成为疑难危重病症的诊疗基地、高新药物设备的研发基地、先进医疗技术的创新基地和医学科技信息的交流基地。" />
<meta http-equiv="x-ua-compatible" content="ie=emulateie7" />
<link href="/Css/Style.css" rel="stylesheet" type="text/css" />
</head>
...
encode与decode函数
网友评论