剛學習這個,這引發我之前的知識盲區。我今天用以下代碼列印練練。了解下。
# -*- coding: utf-8 -*-
import scrapy
class TiebaPaSpider(scrapy.Spider):
name = 'tieba_pa'
allowed_domains = ['tieba.com']
start_urls = ['http://tieba.com/']
def parse(self, response):
with open('w.html','w') as f:
f.write(response.body)
然后出現這個錯誤
Traceback (most recent call last):
File "d:\python 3.7.0\lib\site-packages\twisted\internet\defer.py", line 654, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "D:\web crawler\scrapy_pracise\tieba_sou\tieba_sou\spiders\tieba_pa.py", line 13, in parse
f.write(response.body)
TypeError: write() argument must be str, not bytes
我想問一下 這個response.body回傳的結果是個什么型別(str還是byte)
還有檔案以二進制方式寫入是什么意思,是寫入之前這個檔案是二進制還是寫入之后是二進制。
因為我是看視頻學的,它的代碼也是這樣。他不會報出錯誤,我報錯誤了。為啥我行時必須要吧write中的('w')變為('wb')
求助求助,感謝感謝
uj5u.com熱心網友回復:
試試
f.write(response.text)
uj5u.com熱心網友回復:
二進制的話要用wb寫入uj5u.com熱心網友回復:
不行。我主要是搞不懂為啥同樣的代碼兩種不同的結果。我要wb他卻w
uj5u.com熱心網友回復:
write中的w wb是什么意思,是寫入的那個檔案是那個格式么比如我用wb方式,那我寫入檔案的那個東西必須是二進制資料么?
uj5u.com熱心網友回復:
write中的w wb是什么意思,是寫入的那個檔案是那個格式么比如我用wb方式,那我寫入檔案的那個東西必須是二進制資料么?
uj5u.com熱心網友回復:
你得到的是二進制的資料啊,就一定要使用"wb"呀,定義的時候就是說wb是寫入二進制資料的,特別寫入像圖片之類的資料。uj5u.com熱心網友回復:

你看 一樣的代碼 他w 我要用wb
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/87917.html
下一篇:Python新手求助
