爬新聞網站資料存成csv檔問題

看板Python作者 (bcdman)時間10年前 (2015/07/05 21:20), 10年前編輯推噓0(0017)
留言17則, 3人參與, 最新討論串1/1
小弟我最近在抓新聞網站資料 用BeautifulSoup 用print資料都正常 但是存成csv檔就是出不來 請大家幫幫忙 程式碼 import requests import csv from bs4 import BeautifulSoup res = requests.get("https://tw.news.yahoo.com/politics/archive/") soup = BeautifulSoup(res.text) for item in soup.select('.txt'): f = open("stock.csv","w") w = csv.writer(f) w.writerows((item.select('a')[0].text).encode('utf-8')) f.close() -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.117.136.102 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1436102438.A.9E1.html ※ 編輯: quingtw (120.117.136.102), 07/05/2015 21:35:34

07/05 21:37, , 1F
soup.select('.txt') 是空的,所以不會寫東西
07/05 21:37, 1F

07/05 21:37, , 2F
另外開檔跟 csv.writer(f) 可以放在迴圈外
07/05 21:37, 2F

07/05 22:06, , 3F
可是我用print item.select('a')[0].text這樣是有印出東
07/05 22:06, 3F

07/05 22:06, , 4F
西的
07/05 22:06, 4F

07/05 22:57, , 5F
你要不要再確定一次,因為 select 完 item 數是 0
07/05 22:57, 5F

07/05 22:58, , 6F
for loop 根本沒有進去,多寫一行 print 在 for 就知道
07/05 22:58, 6F

07/06 00:31, , 7F
有進去,有印出資料
07/06 00:31, 7F

07/06 01:57, , 8F
ok 但這在我電腦上就測不出來,只能隔空抓藥了
07/06 01:57, 8F

07/06 02:01, , 9F
我看不出 xxxx.encode() 為什麼要用 writerows()
07/06 02:01, 9F

07/06 02:02, , 10F
應該是像 w.writerow(['col1', 'col2']) # py2.7
07/06 02:02, 10F

07/06 02:03, , 11F
或 w.writerows([['r1c1', 'r1c2'], ['r2c1', 'r2']])
07/06 02:03, 11F

07/06 02:04, , 12F
elem.text 就只是個字串,理論上會寫出來,但格式會變
07/06 02:04, 12F

07/06 02:07, , 13F
會被直接 iterate 變成單字元單行的狀況
07/06 02:07, 13F

07/06 02:33, , 14F
嗯嗯謝謝講解我已經改成w.writerow了,但是csv檔案開起
07/06 02:33, 14F

07/06 02:33, , 15F
來還是一堆「??????」
07/06 02:33, 15F

07/06 15:19, , 16F
你外部是怎麼開 csv 檔的?應該是外部軟體編碼的問題
07/06 15:19, 16F

07/06 15:23, , 17F
csv 通常編碼都是看 locale,如果你是中文環境存 big5試
07/06 15:23, 17F
文章代碼(AID): #1LcIycdX (Python)
文章代碼(AID): #1LcIycdX (Python)