爬新闻网站资料存成csv档问题

楼主: quingtw (bcdman)   2015-07-05 21:20:36
小弟我最近在抓新闻网站资料
用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()
作者: ccwang002 (亮)   2015-07-05 21:37:00
soup.select('.txt') 是空的,所以不会写东西另外开档跟 csv.writer(f) 可以放在循环外
楼主: quingtw (bcdman)   2015-07-05 22:06:00
可是我用print item.select('a')[0].text这样是有印出东西的
作者: ccwang002 (亮)   2015-07-05 22:57:00
你要不要再确定一次,因为 select 完 item 数是 0for loop 根本没有进去,多写一行 print 在 for 就知道
楼主: quingtw (bcdman)   2015-07-06 00:31:00
有进去,有印出资料
作者: ccwang002 (亮)   2015-07-06 01:57:00
ok 但这在我电脑上就测不出来,只能隔空抓药了我看不出 xxxx.encode() 为什么要用 writerows()应该是像 w.writerow(['col1', 'col2']) # py2.7或 w.writerows([['r1c1', 'r1c2'], ['r2c1', 'r2']])elem.text 就只是个字串,理论上会写出来,但格式会变会被直接 iterate 变成单字符单行的状况
楼主: quingtw (bcdman)   2015-07-06 02:33:00
嗯嗯谢谢讲解我已经改成w.writerow了,但是csv档案开起来还是一堆“??????”
作者: darkgerm (黑骏)   2015-07-06 15:19:00
你外部是怎么开 csv 档的?应该是外部软件编码的问题csv 通常编码都是看 locale,如果你是中文环境存 big5试

Links booklink

Contact Us: admin [ a t ] ucptt.com