2016-05-13 51 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