|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我首先打开了《网络爬虫》这一页
复制了url
然后最开始的代码是:
import urllib.request
url='https://baike.baidu.com/item/网络爬虫'
response=urllib.request.urlopen(url).read()
content=response.decode('utf-8')
print(content)
出现的错误为:
后面查资料后发现,print函数本身对于utf-8里面的一些编码无法正确打印出来
所以我修改了一下代码,想把内容先打印在txt里面。
修改后的代码为:
import urllib.request
url='https://baike.baidu.com/item/网络爬虫'
response=urllib.request.urlopen(url).read()
content=response.decode('utf-8')
with open('D://baike.txt','w',encoding='utf-8') as f:
f.write(content)
但还是出现了一样的错误
我的问题就是:我一开始用utf-8解码了网页,然后在文件里面,规定也是用‘utf-8’,为什么还会出现错误呢?而且为什么错误是ascii无法encode呢?
这个问题我总是遇到,希望有大神能指导一下!
本帖最后由 傻纸 于 2019-8-31 00:04 编辑
这个不是读取后网页编码的问题,而是你的url上带有中文“网络爬虫”,这个中文不能编码为ascii,使用urllib.parse解析一下
- import urllib.request
- import urllib.parse
- url="https://baike.baidu.com/item/"+urllib.parse.quote("网络爬虫")
- #url='https://baike.baidu.com/item/网络爬虫'
- response=urllib.request.urlopen(url).read()
- content=response.decode('utf-8')
- with open('D://baike.txt','w',encoding='utf-8') as f:
- f.write(content)
复制代码
提示里面出错的语句:
(, 下载次数: 0)
|
|