[問題] 爬蟲編碼utf8後整個檔案只剩一句話?

看板Python作者 (哥,閉嘴啦)時間6年前 (2018/10/07 15:28), 6年前編輯推噓1(1027)
留言28則, 4人參與, 6年前最新討論串1/1
小弟python新手 最近想實作一下爬蟲的部分 選擇reddit論壇 爬完檔案之後想要續做文字分析 但在爬蟲輸出時遇到了編碼的問題 我爬文參照了一些解決方案 是解決了 但整個文件只剩下一句話 請問該怎麼解決呢? https://imgur.com/a/2uezYPV -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.126.194.203 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1538897289.A.02A.html

10/07 17:01, 6年前 , 1F
因為你 ignore了(?)
10/07 17:01, 1F

10/07 22:53, 6年前 , 2F
把ignore去掉也是一樣....
10/07 22:53, 2F

10/07 22:56, 6年前 , 3F
你的 In [76] 執行結果應該是 In [72] 的最後一段
10/07 22:56, 3F

10/07 22:58, 6年前 , 4F
所以請試著完整的執行 In [72] 並對裡面的
10/07 22:58, 4F

10/07 22:58, 6年前 , 5F
content_container.text decode
10/07 22:58, 5F

10/07 23:00, 6年前 , 6F
講簡單點:把 In [76] 的那行 print 取代掉 In [72] 的
10/07 23:00, 6F

10/07 23:00, 6年前 , 7F
那行 print ...
10/07 23:00, 7F
有了! print出來後確實正常了 但是在我寫入txt之後卻又變成只剩一句話... https://imgur.com/a/vnJ2UUt ※ 編輯: wayne64001 (180.217.163.36), 10/07/2018 23:05:15

10/07 23:12, 6年前 , 8F
因為你寫入一段後就馬上把 file 關了
10/07 23:12, 8F

10/07 23:13, 6年前 , 9F
所以你 for 迴圈裡在做的事情是:
10/07 23:13, 9F

10/07 23:14, 6年前 , 10F
1. 取得 content_container.text
10/07 23:14, 10F

10/07 23:15, 6年前 , 11F
2. 開一個新的 file ("fuckyou123.txt")
10/07 23:15, 11F

10/07 23:15, 6年前 , 12F
3. 寫入 content_container.text
10/07 23:15, 12F

10/07 23:16, 6年前 , 13F
4. 關閉 file ("fuckyou123.txt")
10/07 23:16, 13F

10/07 23:16, 6年前 , 14F
由於 file open 的方式是 'w' (write),所以每次都會以
10/07 23:16, 14F

10/07 23:17, 6年前 , 15F
一個新檔案覆蓋掉原本的檔案。又加上 file 的 open/
10/07 23:17, 15F

10/07 23:18, 6年前 , 16F
close 都在同一個迴圈內,所以實際上這個 file 已經被
10/07 23:18, 16F

10/07 23:18, 6年前 , 17F
覆寫掉很多遍,直到最後一行結束。
10/07 23:18, 17F

10/07 23:19, 6年前 , 18F
所以建議你把 file 的 open/close 移到迴圈外,迴圈內
10/07 23:19, 18F

10/07 23:19, 6年前 , 19F
只負責寫入資料。
10/07 23:19, 19F
感謝大大耐心地回我 但移到迴圈外結果還是一樣...小弟太菜了實在不知道那裡的問題 https://imgur.com/a/wQrh6M1 ※ 編輯: wayne64001 (180.217.163.36), 10/07/2018 23:26:43

10/07 23:33, 6年前 , 20F
要先 open file ,再來寫入資料,最後才 close file
10/07 23:33, 20F

10/07 23:34, 6年前 , 21F
記得你的 `outfile.write(data)` 要放在迴圈內
10/07 23:34, 21F
感謝大大!終於將它完整的印在txt檔了 想了整天不知道到底是哪裡的問題沒有想到竟 然是迴圈沒寫好 看來這邊得再多加點功夫了 ※ 編輯: wayne64001 (180.217.163.36), 10/07/2018 23:39:17

10/07 23:48, 6年前 , 22F
有解決問題就好,有空可以再看一下 with statement
10/07 23:48, 22F

10/07 23:50, 6年前 , 23F
key word: python with "context manager" "file open"
10/07 23:50, 23F

10/07 23:51, 6年前 , 24F
keyword*
10/07 23:51, 24F

10/07 23:52, 6年前 , 25F
https://goo.gl/Fi9oKQ 直接貼給你好 XD
10/07 23:52, 25F

10/07 23:53, 6年前 , 26F
上面連結的其他內容也可以多看看,希望對你有幫助!
10/07 23:53, 26F

10/08 00:08, 6年前 , 27F
gm 大總是很有耐心,推(y)
10/08 00:08, 27F

10/08 10:34, 6年前 , 28F
謝謝樓上 d(`・∀・)b
10/08 10:34, 28F
文章代碼(AID): #1RkRM90g (Python)
文章代碼(AID): #1RkRM90g (Python)