简体   繁体   中英

For loop don't return anything (Python + Selenium)

I'm doing some web scraping from this website: https://www.adamchoi.co.uk/teamgoals/detailed But when I try to get my.csv file, I get an empty DataFrame. So I decided to test the for loop and print. When I run it I don't get anything in return. I don't understand what is failing

here is my code:

from selenium import webdriver
from selenium.webdriver.support.ui import Select

import pandas as pd
import time

website = 'https://www.adamchoi.co.uk/teamgoals/detailed'
path = r'C:/Users/Ronald C/Downloads/Data Analyst Portfolio Porjects/Project 5 Web Scrapping/chromedriver.exe'

driver = webdriver.Chrome(path)
driver.get(website)

all_matches_button = driver.find_element_by_xpath('//label[@analytics-event="All matches"]')
all_matches_button.click()

drop_country = Select(driver.find_element_by_id('country'))
drop_country.select_by_visible_text('Spain')

time.sleep(5)

drop_season = Select(driver.find_element_by_id('season'))
drop_season.select_by_visible_text('21/22')

# Creating a list with all the matches

matches = driver.find_elements_by_tag_name('tr')

# Extraction of the list "matches"

# match_list = []
# for match in matches:
#    match_list.append(match.text)
    
# driver.quit()


for match in matches:
    print(match.text)

@Ramon Cordova, you need to move the statement to wait, after you are selecting "Season" option. In the current case, since it takes a few seconds for the table to populate, you get nothing as the output of for loop.

drop_season = Select(driver.find_element_by_id('season'))
drop_season.select_by_visible_text('21/22')
time.sleep(5)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM