2016-05-13 112 views
-2

我是网站抓取一个网站,有我需要的Python,但是当我把它写到一个cvs文件时,我只能得到第一行。不完全确定如何打印多行。网络抓取69条线,我需要所有这些。python多写一行到csv

任何帮助表示赞赏。

感谢

g_data = soup.find_all("h4", {"class": "prod-title"}) 
p_data = soup.find_all("span", {"class": "amount"}) 


for g, p in zip(g_data, p_data): 
    c = (g.text, p.text) 
    print(g.text, p.text) 

a.writerow(c) 
b.close() 
+3

你可以修复你的代码indentaton?它看起来并不正确。 –

+4

请检查您的代码缩进 - 它目前是非法的,这样代码甚至不会运行。最可能的'a.writerow(c)'行不缩进,但应该是。 –

+4

你是否关闭循环内的文件? ** Upd:**'writerow'必须在循环内,'close'在外。 – schwobaseggl

回答

0

使用writerows,而不是writerow

with open(filename, 'w') as f: 
    writer = csv.writer(f, delimiter=',') 
    do_something() 
    writer.writerows(rows) 
0

OK,我忘了压痕,还是习惯到Python。所以下面的代码完美地工作。作家几乎可以工作,但每个角色后都会逗号。谢谢你们

for g, p in zip(g_data, p_data): 
    c = (g.text, p.text) 
    print(g.text, p.text) 
    a.writerow(c) 
+1

逗号是默认的分隔符。如果你想使用'\ t'作为分隔符,试试这个'writer = csv.writer(f,delimiter ='\ t')' – SparkAndShine