作者quingtw (bcdman)
看板Python
標題爬新聞網站資料存成csv檔問題
時間Sun Jul 5 21:20:36 2015
小弟我最近在抓新聞網站資料
用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://webptt.com/m.aspx?n=bbs/Python/M.1436102438.A.9E1.html
※ 編輯: quingtw (120.117.136.102), 07/05/2015 21:35:34
1F:→ ccwang002: soup.select('.txt') 是空的,所以不會寫東西 07/05 21:37
2F:→ ccwang002: 另外開檔跟 csv.writer(f) 可以放在迴圈外 07/05 21:37
3F:→ quingtw: 可是我用print item.select('a')[0].text這樣是有印出東 07/05 22:06
4F:→ quingtw: 西的 07/05 22:06
5F:→ ccwang002: 你要不要再確定一次,因為 select 完 item 數是 0 07/05 22:57
6F:→ ccwang002: for loop 根本沒有進去,多寫一行 print 在 for 就知道 07/05 22:58
7F:→ quingtw: 有進去,有印出資料 07/06 00:31
8F:→ ccwang002: ok 但這在我電腦上就測不出來,只能隔空抓藥了 07/06 01:57
9F:→ ccwang002: 我看不出 xxxx.encode() 為什麼要用 writerows() 07/06 02:01
10F:→ ccwang002: 應該是像 w.writerow(['col1', 'col2']) # py2.7 07/06 02:02
11F:→ ccwang002: 或 w.writerows([['r1c1', 'r1c2'], ['r2c1', 'r2']]) 07/06 02:03
12F:→ ccwang002: elem.text 就只是個字串,理論上會寫出來,但格式會變 07/06 02:04
13F:→ ccwang002: 會被直接 iterate 變成單字元單行的狀況 07/06 02:07
14F:→ quingtw: 嗯嗯謝謝講解我已經改成w.writerow了,但是csv檔案開起 07/06 02:33
15F:→ quingtw: 來還是一堆「??????」 07/06 02:33
16F:→ darkgerm: 你外部是怎麼開 csv 檔的?應該是外部軟體編碼的問題 07/06 15:19
17F:→ darkgerm: csv 通常編碼都是看 locale,如果你是中文環境存 big5試 07/06 15:23