首页 > 解决方案 > 如何获取包含体育统计表中相应列描述的中间列?

问题描述

试图从这个网站上抓取一个数据框。到目前为止我有这个测试代码:

from time import sleep
from datetime import datetime
from selenium import webdriver
from selenium.webdriver.opera.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import pandas as pd
from bs4 import BeautifulSoup
import urllib3


errors = []
season = []

my_url = ('http://www.sportal.de/fussball/bundesliga/spielernoten-bayern-muenchen-fc-schalke-04-1-spieltag-2020-2021-20138500')
option = Options()
driver = webdriver.Opera(options=option)
option.headless = False
driver.get(my_url)
driver.maximize_window()
WebDriverWait(driver,5).until(EC.visibility_of_element_located((
        By.CSS_SELECTOR,'.qc-cmp2-footer .qc-cmp2-summary-buttons .css-k8o10q'))).click()
sleep(5)

elem = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((
            By.LINK_TEXT,"Spielstatistik")))
driver.execute_script("arguments[0].click();", elem)
sleep(5)
dfs = pd.read_html(driver.page_source, index_col=["Vergleich"])
print(dfs)

输出是

[           FC Bayern München  FC Schalke 04
Vergleich                                  
100%0%                     8              0,             FC Bayern München  FC Schalke 04
Vergleich                                   
80.8%19.2%                 21              5,            FC Bayern München  FC Schalke 04
Vergleich                                  
92.3%7.7%                 12              1,            FC Bayern München  FC Schalke 04
Vergleich                                  
60%40%                     3              2,             FC Bayern München  FC Schalke 04
Vergleich                                   
66.7%33.3%                  4              2,            FC Bayern München  FC Schalke 04
Vergleich                                  
85%15%                    17              3,            FC Bayern München FC Schalke 04
Vergleich                                 
66.7%33.3%             66.7%         33.3%,            FC Bayern München FC Schalke 04
Vergleich                                 
62.9%37.1%             62.9%         37.1%,            FC Bayern München FC Schalke 04
Vergleich                                 
49.3%50.4%             49.3%         50.4%,            FC Bayern München FC Schalke 04
Vergleich                                 
57.1%42.9%             57.1%         42.9%,             FC Bayern München  FC Schalke 04
Vergleich                                   
52.2%47.8%                 12             11,            FC Bayern München  FC Schalke 04
Vergleich                                  
50%50%                     3              3,             FC Bayern München  FC Schalke 04
Vergleich                                   
81.8%18.2%                  9              2,             FC Bayern München  FC Schalke 04
Vergleich                                   
62.6%37.4%                604            361,            FC Bayern München FC Schalke 04
Vergleich                                 
31.8%68.2%              7.5%         16.1%,            FC Bayern München FC Schalke 04
Vergleich                                 
54.6%45.4%             89.2%         74.2%,                                       FC Bayern München FC Schalke 04
Vergleich                                                            
82.73615635179154%61.904761904761905%             82.7%         61.9%,             FC Bayern München  FC Schalke 04
Vergleich                                   
77.3%22.7%                 17              5,           FC Bayern München FC Schalke 04
Vergleich                                
100%0%                23.5%            0%,             FC Bayern München  FC Schalke 04
Vergleich                                   
41.2%58.8%                 14             20,            FC Bayern München FC Schalke 04
Vergleich                                 
58.8%41.2%             78.6%           55%,             FC Bayern München  FC Schalke 04
Vergleich                                   
27.3%72.7%                  6             16,             FC Bayern München  FC Schalke 04
Vergleich                                   
47.8%52.2%                 11             12,             FC Bayern München  FC Schalke 04
Vergleich                                   
33.3%66.7%                  1              2,            FC Bayern München  FC Schalke 04
Vergleich                                  
50%50%                     0              0,                    Manuel Neuer Manuel Neuer.1 Ralf Fährmann  Ralf Fährmann.1
Vergleich                                                                    
Position                    NaN             TW            TW              NaN
Gespielte Minuten           NaN             90            90              NaN,                      Manuel Neuer  Ralf Fährmann
Vergleich                                       
Gegentore                       0              8
Torwartparaden                  1              3
Fehler vor Gegentor             0              1
Abgefangene Flanken             0              0
weggefaustete Bälle             0              1,                 Manuel Neuer  Ralf Fährmann
Vergleich                                  
Gefoult worden             0              0
Fouls                      0              0
Gelbe Karten               0              0
Platzverweise              0              0]

显然,表由 3 列的单行表组成,每个表都包含主队和客队的值。尽管 pandas 检索具有值的列,但它不用于包含描述的中间列。从 html 源代码中可以看出,这些值嵌套在不同的标签中

我想知道是否有办法获得这个“标签”列。提前致谢。

标签: pandasdataframedata-cleaning

解决方案


推荐阅读