python

python3学习笔记–转换位串到utf-8字符串

最近在学习使用python抓取web页面内容。使用的是urllib模块,感觉要比perl简单了很多,代码量要少很多。

不过今天这篇文章不是介绍urlib模块如何使用,而是解决抓到的web内容显示不正确的方法。

首先先来看一下我的代码

程序执行后的结果如下

b'<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>\r\n<html xmlns=”http://www.w3.org/1999/xhtml”>\r\n<head profile=”http://gmpg.org/xfn/11″>\r\n<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />\r\n<!– <title>\xe8\x9a\x8a\xe5\xad\x90\xe7\xa9\xba\xe9\x97\xb4\xe7\xab\x99  </title> –>\r\n<title>\xe8\x9a\x8a\xe5\xad\x90\xe7\xa9\xba\xe9\x97\xb4\xe7\xab\x99</title>

python输出的根本就不是正常的内容,从输出内容最开头可以看到有一个b’,这表明python输出的是位串(byte array),要想看到正常的页面,需要对结果进行转换。

这里有两种转换方式,下面来逐一介绍

方法一、

只要对输出结果使用decode方法进行转换。

代码上基本没有什么大的改动,只需要把

改成

方法二、

使用python3内嵌的str方法,str()的功能是将目标转换成字串返回,代码改动如下

改成

以上两种方法的输出结果都是一样的,就是访问网站的源代码,如下

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据