2017-04-19 2 views
0

これは質問Finding an element within an element using Selenium Webdriverの第2部と見なすことができます。抽出されたテキストをcsvの個々の行として書き込めません

何Imはここでやっては表から各テキストを抽出した後、ある、csvファイルに書き込む

ここではコードです:3つのprint文の

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) 

結果:

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 documentationによると、writerowsは、パラメータとして行のリストを取り、そして

行は、ライターのために、文字列や数値の反復可能でなければならないあなたがのリストを渡している

オブジェクト文字列の場合は、writerowsが文字列を反復処理し、各文字を1行ずつ並べ替えます。

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

またはwriterowsを使用し、その後、リストのリストにあなたのリストを回す:

あなたはループ使用することができ

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

をしかし、いずれにせよ、あなたの場合にのみ、csvを使用する必要はありません1列あります...

+0

完璧です。ありがとうございます@ティエリー・ラトゥイユ。それは働いた..特に、最後の行が好きだった。乾杯! –

関連する問題