看板 Python 關於我們 聯絡資訊
小弟我最近在抓新聞網站資料 用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
ccwang002: soup.select('.txt') 是空的,所以不會寫東西 07/05 21:37
ccwang002: 另外開檔跟 csv.writer(f) 可以放在迴圈外 07/05 21:37
quingtw: 可是我用print item.select('a')[0].text這樣是有印出東 07/05 22:06
quingtw: 西的 07/05 22:06
ccwang002: 你要不要再確定一次,因為 select 完 item 數是 0 07/05 22:57
ccwang002: for loop 根本沒有進去,多寫一行 print 在 for 就知道 07/05 22:58
quingtw: 有進去,有印出資料 07/06 00:31
ccwang002: ok 但這在我電腦上就測不出來,只能隔空抓藥了 07/06 01:57
ccwang002: 我看不出 xxxx.encode() 為什麼要用 writerows() 07/06 02:01
ccwang002: 應該是像 w.writerow(['col1', 'col2']) # py2.7 07/06 02:02
ccwang002: 或 w.writerows([['r1c1', 'r1c2'], ['r2c1', 'r2']]) 07/06 02:03
ccwang002: elem.text 就只是個字串,理論上會寫出來,但格式會變 07/06 02:04
ccwang002: 會被直接 iterate 變成單字元單行的狀況 07/06 02:07
quingtw: 嗯嗯謝謝講解我已經改成w.writerow了,但是csv檔案開起 07/06 02:33
quingtw: 來還是一堆「??????」 07/06 02:33
darkgerm: 你外部是怎麼開 csv 檔的?應該是外部軟體編碼的問題 07/06 15:19
darkgerm: csv 通常編碼都是看 locale,如果你是中文環境存 big5試 07/06 15:23