from selenium import webdriver
import time
from bs4 import BeautifulSoup
import requests
to_write = {}
link = 'https://www.flashscore.ru/'
def get_shedule_data(link):
try:
browser = webdriver.Chrome()
browser.get(link)
time.sleep(15)
root_div = browser.find_element_by_css_selector('.sportName').get_attribute('innerHTML')
soup = BeautifulSoup(root_div, 'lxml')
all_events = soup.find_all('div', class_='event__match')
for event in all_events:
team1 = event.find('div', class_='event__participant--home').text
team2 = event.find('div', class_='event__participant--away').text
to_write['team1'] = team1
to_write['team2'] = team2
print(to_write)
finally:
browser.quit()
def main():
get_shedule_data(link)
if __name__ == "__main__":
main()
{'team1':'МаккабиНетания(Изр)','team2':'БейтарТельАвив(Изр)'}已打印,但我希望将每个team1和team2的值添加到字典中。我这样理解:all_events是一个列表。通过使用for,我们获取all_event的每个元素,从中获取team1,team2的值并将其写入字典。我在哪里错了?
答案 0 :(得分:0)
在循环时,每次都将新值分配给team1和team2。 因此,每次您覆盖两个键“ team1”和“ team2”。
答案 1 :(得分:0)
因此在词典中,唯一的键只能具有一个关联值
例如尝试这些
dict1 = {"a": 1, "a": 2}
在这种情况下,dict1
仅包含{"a":2}
,这是因为当您将新值分配给相同的键时,它将覆盖先前的值。
这就是字典的工作方式
如果您愿意,您肯定可以有一个列表来存储与某个键关联的多个值
dict2 = {"a" : [1,2]}