Добрый день! Вопрос, почему с сайта он берет не все матчи, а находит только первый. Например Испания- Там играется 4 матча, а он находит только первый и идет дальше.
import requests
from bs4 import BeautifulSoup
import csv
from datetime import datetime
from multiprocessing import Pool
def get_html(url):
r = requests.get(url)
return r.text # Возращает HTML - код страницы
def get_total_pages(html):
soup = BeautifulSoup(html, 'lxml')
pages = soup.find('ul', class_='liga_menu').find_all('li')
links = []
for li in pages:
a = li.find('a').get('href') #берем ссылки матчей, это строка(string)
link = 'https://1xstavka.ru/' + a
links.append(link) #записывает в конец списка
return links
def get_page_data(html):
soup = BeautifulSoup(html, 'lxml')
try:
name = soup.find('span', class_="c-events__teams").text.strip()
except:
name = ''
try:
schet = soup.find('div', class_='c-events__score').text.strip()
except:
schet = ''
data = {'Матч': name,
'Счет': schet}
return data
def write_csv(data):
with open('1xstavka.csv', 'a') as parser: #Парсер название файла куда все сохраниться
writer = csv.writer(parser)
writer.writerow( (data['Матч'],
data['Счет']) )
print(data['Матч'], 'parsed\r')
def make_all(url):
html = get_html(url)
data = get_page_data(html)
write_csv(data)
def main():
url = 'https://1xstavka.ru/live/Football/'
all_links = get_total_pages( get_html(url) )
#for index, url in enumerate(all_links): #index придуманная переменная
#html = get_html(url)
#data = get_page_data(html)
#write_csv(data)
#print(index)
#map(function, list_)
with Pool(15) as p:
p.map(make_all, all_links)
if __name__ == '__main__':
main()