Jupyter-代码不连接数据

时间:2018-07-02 22:09:45

标签: python selenium for-loop dataframe concat

我一直在尝试从网站“ www.meusresultados.com”抓取几场足球比赛的统计数据,抓取工作正常,但没有将数据连接到单个数据帧中 例如,我刮了5个不同的匹配项,结果数据框显示第一个匹配项5次。 在“ gg”内部,有几个URL,Selenium Webdriver用来从中获取数据。 我的目标是创建一个数据框,其中每一行代表一个不同的游戏,但目前仅显示第一个游戏。

import numpy as np
    import time
    import pandas as pd
    from pandas.io.html import read_html
    from pandas import DataFrame
    from selenium import webdriver
    import string
    import random
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.implicitly_wait(1)
wait = WebDriverWait(driver, 1)

summary_stats = DataFrame()

stats = []
import pandas as pd
for url in gg[:6]:
    driver.get(url)
     for k in driver.find_elements_by_xpath('//div[@class="team-primary-content"]'): 
       for i in driver.find_elements_by_xpath('//div[@id="tab-statistics-0-statistic"]'): 
        stats.append(k.text+"\n"+i.text)
            l =  stats[0].split('\n')
            x = ([s.replace('-','') for s in l])
            columns = ['Equipa da casa','Equipa visitante', 
                       'Posse de bola[C]', 'Posse de bola[V]',
                       'Tentativas de golo[C]', 'Tentativas de golo[V]', 
                       'Remates à baliza[C]', 'Remates à baliza[V]',
                       'Remates fora[C]', 'Remates fora[V]',
                       'Remates Bloqueados[C]','Remates Bloqueados[V]',
                       'Livres[C]','Livres[V]',
                       'Cantos[C]','Cantos[V]',
                       'Foras de Jogo[C]','Foras de Jogo[V]',
                       'Lançamentos[C]','Lançamentos[V]',
                       'Defesas de guarda-redes[C]','Defesas de guarda-redes[V]',
                       'Faltas[C]','Faltas[V]',
                       'Cartões amarelos[C]','Cartões amarelos[V]',
                       'Cartões vermelhos[C]','Cartões vermelhos[V]',
                       'Total de passes[C]','Total de passes[V]',
                       'Passes completos[C]','Passes completos[V]',
                       'Cortes[C]','Cortes[V]',
                       'Golos de casa','Golos de fora']
            df99 = pd.DataFrame({
                                 'Equipa da casa': [x[0]], #Equipa
                                 'Equipa visitante': [x[5]],
                                 'Posse de bola[C]': [x[x.index('Posse de bola')-1] if 'Posse de bola' in x else float('NaN')],                 
                                 'Posse de bola[V]': [x[x.index('Posse de bola')+1] if 'Posse de bola' in x else float('NaN')],
                                 'Tentativas de golo[C]':[x[x.index('Tentativas de golo')-1] if 'Tentativas de golo' in x else float('NaN')],
                                 'Tentativas de golo[V]':[x[x.index('Tentativas de golo')+1] if 'Tentativas de golo' in x else float('NaN')],
                                 'Remates à baliza[C]': [x[x.index('Remates à baliza')-1] if 'Remates à baliza' in x else float('NaN')],                     
                                 'Remates à baliza[V]': [x[x.index('Remates à baliza')+1] if 'Remates à baliza' in x else float('NaN')],
                                 'Remates fora[C]': [x[x.index('Remates fora')-1] if 'Remates fora' in x else float('NaN')],                 
                                 'Remates fora[V]':[x[x.index('Remates fora')+1] if 'Remates fora' in x else float('NaN')], # Remates fora
                                 'Remates Bloqueados[C]': [x[x.index('Remates Bloqueados')-1] if 'Remates Bloqueados' in x else float('NaN')],                    
                                 'Remates Bloqueados[V]': [x[x.index('Remates Bloqueados')+1] if 'Remates Bloqueados' in x else float('NaN')], #Remates bloqeuados
                                 'Livres[C]': [x[x.index('Livres')-1] if 'Livres' in x else float('NaN')],         
                                 'Livres[V]': [x[x.index('Livres')+1] if 'Livres' in x else float('NaN')], #Livres                
                                 'Cantos[C]': [x[x.index('Cantos')-1] if 'Cantos' in x else float('NaN')],              
                                 'Cantos[V]':[x[x.index('Cantos')+1] if 'Cantos' in x else float('NaN')], #Cantos               
                                 'Foras de Jogo[C]': [x[x.index('Foras de Jogo')-1] if 'Foras de Jogo' in x else float('NaN')],                       
                                 'Foras de jogo[V]': [x[x.index('Foras de Jogo')+1] if 'Foras de Jogo' in x else float('NaN')], #Foras de jogo              
                                 'Lançamentos[C]': [x[x.index('Lançamentos')-1] if 'Lançamentos' in x else float('NaN')],                  
                                 'Lançamentos[V]': [x[x.index('Lançamentos')+1] if 'Lançamentos' in x else float('NaN')], # Lançamentos               
                                 'Defesas de guarda-redes[C]': [x[x.index('Defesas de guardaredes')-1] if 'Defesas de guardaredes' in x else float('NaN')],                          
                                 'Defesas de guarda-redes[V]': [x[x.index('Defesas de guardaredes')+1] if 'Defesas de guardaredes' in x else float('NaN')], #Defesas
                                 'Faltas[C]':  [x[x.index('Faltas')-1] if 'Faltas' in x else float('NaN')], 
                                 'Faltas[V]':  [x[x.index('Faltas')+1] if 'Faltas' in x else float('NaN')] , #Faltas
                                 'Cartões amarelos[C]':[x[x.index('Cartões amarelos')-1] if 'Cartões amarelos' in x else float('NaN')],                  
                                 'Cartões amarelos[V]':[x[x.index('Cartões amarelos')+1] if 'Cartões amarelos' in x else float('NaN')], #cartoes amarelos
                                 'Cartões vermelhos[C]': [x[x.index('Cartões vermelhos')-1] if 'Cartões vermelhos' in x else float('NaN')],               
                                 'Cartões vermelhos[V]': [x[x.index('Cartões vermelhos')+1] if 'Cartões vermelhos' in x else float('NaN')], #cartoes vermelhos       
                                 'Total de passes[C]': [x[x.index('Total de passes')-1] if 'Total de passes' in x else float('NaN')],              
                                 'Total de passes[V]': [x[x.index('Total de passes')+1] if 'Total de passes' in x else float('NaN')],   #total de passe
                                 'Passes completos[C]': [x[x.index('Passes completos')-1] if 'Passes completos' in x else float('NaN')],                      
                                 'Passes completos[V]': [x[x.index('Passes completos')+1] if 'Passes completos' in x else float('NaN')],   #passes completo
                                 'Cortes[C]': [x[x.index( 'Cortes')-1] if  'Cortes' in x else float('NaN')], 
                                 'Cortes[V]':[x[x.index( 'Cortes')+1] if  'Cortes' in x else float('NaN')], # Cortes                            
                                 'Golos de casa':[x[1]],
                                 'Golos de fora':[x[2]]},
                                 dtype=np.int32,columns=columns)
        summary_stats = pd.concat([summary_stats,df99],ignore_index=True)
driver.close()

0 个答案:

没有答案