簡體   English   中英

從響應中保存unicode文本,而無需編碼為文件

[英]Save unicode text from response without encoding into file

我想通過網絡抓取從路由器下載配置文件。 我要實現的過程是這樣的:

  1. 將配置文件保存到磁盤
  2. 發送恢復出廠設置
  3. 加載先前下載的配置文件。

到目前為止,我有以下代碼:

with requests.Session() as s:  # To login into the modem
    pagePostBackUp = 'https://192.168.1.1/goform/BackUp'
    s.post(urlLogin, data=loginCredentials, verify=False, timeout=5)
    dataBackUp = {'dir': 'admin/','file': 'cmconfig.cfg'}
    resultBackUp = s.post(pagePostBackUp, data=dataBackUp, verify=False, timeout=10)
    print(resultBackUp.text)

最后一行是我要保存到文件中的內容。 但是,當我嘗試使用以下代碼進行操作時:

f = open('/Users/user/Desktop/file.cfg', 'w')

引發錯誤,ASCII編解碼器無法編碼字符。 如果我使用例如encode ='utf16'保存文件,則與我最初手動下載的文件不同。

因此,問題是,如何使用路由器通過網絡給我的相同編碼保存該文件? (作為unicode)。 該文件的內容如下所示:

pqJ U \\ V,.o / zf v 〜W3 =,gg m d}; ytLcJ

將代碼的最后一行更改為以下內容:

    with open('/Users/user/Desktop/file.cfg', 'wb') as f:
        f.write(resultBackUp.content)

這會將有效載荷視為數據( bytes ),而不是文本:文件以二進制模式打開,內容按原樣使用。 沒有編碼/解碼發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM