Нужно больше трех совпадений в BeautifulSoup.

Rom007

Новичок
Пользователь
Май 19, 2022
2
0
1
Python:
            url = f'https://??????????????????????event.php?id={item}&t=1x2'
            r = requests.get(url).text
            soup = bs(r,'lxml')
            trs = soup.find_all('tr')
            for tr in trs:
                if item not in BANS:
                    if 'Date' not in tr.text:
                        td1 = tr.find_all('td')[6].get('class')
                        checker = 'None'
                        if td1 == ['red2']:
                            checker = 'совпадение'
                        if checker == 'совпадение':
Код работает но он мне присылает все найденные совпадения , а
мне надо чтобы red2 было больше трех совпадений только в этом случаи должен присылать сообщение!!!!
Пробовал так не получилось
Python:
td1 = tr.find_all('td')[6].get('class')
checker = 'None'
for i in td1:
    if i.count('red2') > 3:
        checker = 'совпадение'
        break
if checker == 'совпадение':
    pass
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Если ты про то, что должно быть 4+ элемента с классом red2, то так:
Python:
td1_list = [True for el in tr.find_all('td') if el.get('class') == 'red2']
checker = 'совпадение' if len(td1_list) > 3 else 'None'
if checker == 'совпадение':
    pass
 

Rom007

Новичок
Пользователь
Май 19, 2022
2
0
1
Если ты про то, что должно быть 4+ элемента с классом red2, то так:
Python:
td1_list = [True for el in tr.find_all('td') if el.get('class') == 'red2']
checker = 'совпадение' if len(td1_list) > 3 else 'None'
if checker == 'совпадение':
    pass
Большое спасибо вам код ошибку не выдает, но что-то не выполняет условия. Походу я делаю что-то не то. Всю голову сломал!
 

Форум IT Специалистов