为了账号安全,请及时绑定邮箱和手机立即绑定

输出的网页内容是乱码?

如图,你们有出现这样的情况吗

56a87dbb00010c8c05000236.jpg

56a87dbb000192bc05000219.jpg


正在回答

6 回答

fout = open('output.html', 'w', encoding='utf-8')
fout.write("<html><head><meta charset='utf-8'><title>爬取百度百科1000个页面的数据</title></head><body><table>")

https://img1.sycdn.imooc.com//5bcd3bc400016fe910140396.jpg

0 回复 有任何疑惑可以回复我~

已经解决

win7 python3.6 遇到乱码的情况

同明磊


只需要在fout = open('output.html', 'w', encoding = 'utf-8')

 fout.write("<td>%s</td>" % data['title'])

 fout.write("<td>%s</td>" % data['summary'])

这里面不能加.encode('utf-8'),加了会乱码


fout.write("<head><meta charset = 'utf-8'></head>")这个写不写无所谓,不影响


0 回复 有任何疑惑可以回复我~

为什么我的会这样?

57f9ffa300010bd405000338.jpg

57f9ffa30001c44f05000264.jpg


0 回复 有任何疑惑可以回复我~

代码中设定了输出编码是utf-8,但是没有在html head中加入该网页的编码格式,浏览器就用默认的编码方式去解析了。

fout.write("<html>")
fout.write("<body>")

下面追加输出

fout.write("<head><meta charset='utf-8'></head>")

就可以解决了。



5 回复 有任何疑惑可以回复我~
#1

baibaibai66

是的,正解。不过,一般HTML,都是将<head></head>元素加在<body></body>元素之前。
2016-03-12 回复 有任何疑惑可以回复我~
#2

迷你熊

解决了我的问题,么么哒
2016-07-29 回复 有任何疑惑可以回复我~
#3

小丁要做个有勇气的人

都快哭了,真感谢!终于解决了问题!
2016-08-25 回复 有任何疑惑可以回复我~
#4

qq_守火人_03179824

很赞啊,为了凑齐三个字
2017-03-28 回复 有任何疑惑可以回复我~
查看1条回复

这个还是不行啊

fout.write("<td>%s</td>" % data['summary'].encode(type))

UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: invalid character


0 回复 有任何疑惑可以回复我~

已解决

需要加入

import sys

type = sys.getfilesystemencoding()

并把encode改为

            fout.write("<td>%s</td>" % data['title'].encode(type))

            fout.write("<td>%s</td>" % data['summary'].encode(type))


笔记:天知道系统的编码是什么。。

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python开发简单爬虫
  • 参与学习       227670    人
  • 解答问题       1219    个

本教程带您解开python爬虫这门神奇技术的面纱

进入课程

输出的网页内容是乱码?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信