Crossin的编程教室

标题: python3.5.1 【Python 第44课】 查天气(2)网页导入出错,求解 [打印本页]

作者: newstudent    时间: 2018-3-5 22:53
标题: python3.5.1 【Python 第44课】 查天气(2)网页导入出错,求解
【Python 第44课】 查天气(2)from urllib import request
web=request.urlopen(r'http://www.baidu.com')
content=web.read()
f=open('baidu.html','w')
f.write(content)
f.close()

出错提示:
Traceback (most recent call last):
  File "C:\Users\xiejian\AppData\Local\Programs\Python\Python35-32\test180305.py", line 5, in <module>
    f.write(content)
TypeError: write() argument must be str, not bytes

修改为:
from urllib import request
web=request.urlopen(r'http://www.baidu.com')
content=str(web.read())
f=open('baidu.html','w')
f.write(content)
f.close()

能够顺利生成baidu.html文件,用360浏览器打开则是一堆乱码。
大神们,求解啊!



作者: crossin先生    时间: 2018-3-6 14:38
content.decode('utf8')
或者用 wb 模式写入
作者: Ambition——xb    时间: 2018-4-5 17:14
crossin先生 发表于 2018-3-6 14:38
content.decode('utf8')
或者用 wb 模式写入

是把f.write(content)
改成
content.decode('utf8')吗?还是打不开啊
作者: crossin先生    时间: 2018-4-6 00:04
f.write(content.decode('utf8'))
windows是gbk




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5