美文网首页
python 3.6 TypeError: write() ar

python 3.6 TypeError: write() ar

作者: 腿长袖子短 | 来源:发表于2018-01-04 09:32 被阅读289次
    • 在学习爬虫时,需要将抓取到的页面数据保存到本地
        def parse(self, response):
            file_name = 'teachers.html'
            with open(file_name, 'w+') as f:
                f.write(response.body)
    
    • 刚开始使用 'w+'的方式写入,报错
    Traceback (most recent call last):
      File "d:\python\lib\site-packages\twisted\internet\defer.py", line 653, in _runCallbacks
        current.result = callback(current.result, *args, **kw)
      File "E:\xampp\htdocs\my_sp\my_sp\spiders\my_sp_one.py", line 13, in parse
        f.write(response.body)
    TypeError: write() argument must be str, not bytes
    
    • 搜索之后发现只需要将写入模式改为 'wb+' 就不会报错了
      注意,Python2.x默认编码环境是ASCII,当和取回的数据编码格式不一致时,可能会造成乱码
      我用的python3,没有这个问题,因为python3默认编码是Unicode

    相关文章

      网友评论

          本文标题:python 3.6 TypeError: write() ar

          本文链接:https://www.haomeiwen.com/subject/lnilnxtx.html