看板 Python 關於我們 聯絡資訊
小弟python新手 最近想實作一下爬蟲的部分 選擇reddit論壇 爬完檔案之後想要續做文字分析 但在爬蟲輸出時遇到了編碼的問題 我爬文參照了一些解決方案 是解決了 但整個文件只剩下一句話 請問該怎麼解決呢? https://imgur.com/a/2uezYPV -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.126.194.203 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1538897289.A.02A.html
HenryLiKing: 因為你 ignore了(?) 10/07 17:01
wayne64001: 把ignore去掉也是一樣.... 10/07 22:53
gmccntzx1: 你的 In [76] 執行結果應該是 In [72] 的最後一段 10/07 22:56
gmccntzx1: 所以請試著完整的執行 In [72] 並對裡面的 10/07 22:58
gmccntzx1: content_container.text decode 10/07 22:58
gmccntzx1: 講簡單點:把 In [76] 的那行 print 取代掉 In [72] 的 10/07 23:00
gmccntzx1: 那行 print ... 10/07 23:00
有了! print出來後確實正常了 但是在我寫入txt之後卻又變成只剩一句話... https://imgur.com/a/vnJ2UUt ※ 編輯: wayne64001 (180.217.163.36), 10/07/2018 23:05:15
gmccntzx1: 因為你寫入一段後就馬上把 file 關了 10/07 23:12
gmccntzx1: 所以你 for 迴圈裡在做的事情是: 10/07 23:13
gmccntzx1: 1. 取得 content_container.text 10/07 23:14
gmccntzx1: 2. 開一個新的 file ("fuckyou123.txt") 10/07 23:15
gmccntzx1: 3. 寫入 content_container.text 10/07 23:15
gmccntzx1: 4. 關閉 file ("fuckyou123.txt") 10/07 23:16
gmccntzx1: 由於 file open 的方式是 'w' (write),所以每次都會以 10/07 23:16
gmccntzx1: 一個新檔案覆蓋掉原本的檔案。又加上 file 的 open/ 10/07 23:17
gmccntzx1: close 都在同一個迴圈內,所以實際上這個 file 已經被 10/07 23:18
gmccntzx1: 覆寫掉很多遍,直到最後一行結束。 10/07 23:18
gmccntzx1: 所以建議你把 file 的 open/close 移到迴圈外,迴圈內 10/07 23:19
gmccntzx1: 只負責寫入資料。 10/07 23:19
感謝大大耐心地回我 但移到迴圈外結果還是一樣...小弟太菜了實在不知道那裡的問題 https://imgur.com/a/wQrh6M1 ※ 編輯: wayne64001 (180.217.163.36), 10/07/2018 23:26:43
gmccntzx1: 要先 open file ,再來寫入資料,最後才 close file 10/07 23:33
gmccntzx1: 記得你的 `outfile.write(data)` 要放在迴圈內 10/07 23:34
感謝大大!終於將它完整的印在txt檔了 想了整天不知道到底是哪裡的問題沒有想到竟 然是迴圈沒寫好 看來這邊得再多加點功夫了 ※ 編輯: wayne64001 (180.217.163.36), 10/07/2018 23:39:17
gmccntzx1: 有解決問題就好,有空可以再看一下 with statement 10/07 23:48
gmccntzx1: key word: python with "context manager" "file open" 10/07 23:50
gmccntzx1: keyword* 10/07 23:51
gmccntzx1: https://goo.gl/Fi9oKQ 直接貼給你好 XD 10/07 23:52
gmccntzx1: 上面連結的其他內容也可以多看看,希望對你有幫助! 10/07 23:53
cutekid: gm 大總是很有耐心,推(y) 10/08 00:08
gmccntzx1: 謝謝樓上 d(`・∀・)b 10/08 10:34