2017-04-19 42 views
0

這可能會被視爲Finding an element within an element using Selenium Webdriver問題的第二部分。無法將提取的文本寫入csv中的單獨行

什麼IM是在這裏做,從表中提取每一個文字,書寫成csv文件

這裏之後是代碼:

from selenium import webdriver 
import os 
import csv 

chromeDriver = "/home/manoj/workspace2/RedTools/test/chromedriver" 
os.environ["webdriver.chrome.driver"] = chromeDriver 
driver = webdriver.Chrome(chromeDriver) 
driver.get("https://www.betfair.com/exchange/football/coupon?id=2") 
list2 = driver.find_elements_by_xpath('//*[@data-sportid="1"]') 

couponlist = [] 
finallist = [] 
for game in list2[1:]: 
    coup = game.find_element_by_css_selector('span.home-team').text 
    print(coup) 
    couponlist.append(coup) 
print(couponlist) 
print('its done') 


outfile = open("./footballcoupons.csv", "wb") 
writer = csv.writer(outfile) 
writer.writerow(["Games"]) 
writer.writerows(couponlist) 

的3 print語句結果:

Santos Laguna 
CSMS Iasi 
AGF 
Besiktas 
Malmo FF 
Sirius 
FCSB 
Eibar 
Newcastle 
Pescara 

[u'Santos Laguna', u'CSMS Iasi', u'AGF', u'Besiktas', u'Malmo FF', u'Sirius', u'FCSB', u'Eibar', u'Newcastle', u'Pescara'] 

its done 

現在,您可以注意到我將這些值寫入csv的代碼。但我最終把它寫入csv。請看快照。有人可以幫我解決這個問題嗎? enter image description here

回答

3

the documentationwriterows需要的參數行的列表,並

行必須是字符串或數字爲作家的迭代對象

你傳入的列表字符串,所以writerows迭代你的字符串,從每個字符中取出一行。

你可以使用一個循環:

for team in couponlist: 
    writer.writerow([team]) 

或把你的名單分成列表的列表,然後使用writerows

couponlist = [[team] for team in couponlist] 
writer.writerows(couponlist) 

但無論如何,沒有必要,如果你只使用csv有一列...

+0

完美..謝謝你@ thierry-lathuille。它的工作..特別是,喜歡最後一行。乾杯! –

相關問題