作者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/cn.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