2017-04-19 5 views
0

Dies kann als zweiter Teil der Frage Finding an element within an element using Selenium Webdriver betrachtet werden.Kann extrahierten Text nicht als einzelne Zeilen in CSV schreiben

Was Im hier tut, nach jedem Text aus der Tabelle zu extrahieren, es in CSV-Datei

Hier ist das Schreiben der Code:

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) 

Ergebnisse von 3 Druckanweisungen:

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 

Jetzt können Sie den Code feststellen, wo ich diese Werte in CSV schreibe. Aber am Ende schreibe ich es komisch in csv. Bitte sehen Sie sich den Schnappschuss an. Kann mir jemand helfen, das bitte zu beheben? enter image description here

Antwort

3

Nach the documentation, writerows nimmt als Parameter eine Liste von Zeilen und

Eine Reihe muss ein iterable von Strings oder Zahlen für Writer werden, um Objekte

Sie passieren eine Liste von Strings, also writerows iteriert über Ihre Strings und macht aus jedem Zeichen eine Zeile.

Sie eine Schleife verwenden:

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

oder schalten Sie die Liste in eine Liste von Listen, dann writerows verwenden:

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

Aber wie auch immer, es gibt keine Notwendigkeit csv wenn Sie verwenden habe eine Spalte ...

+0

perfekt .. danke @ thierry-lathuille. Es hat funktioniert. Besonders gefallen hat die letzte Zeile. Prost! –

Verwandte Themen