Хорошо, прежде всего, так:
Представленные данные не соответствуют друг другу. Есть два значения 200 и 206, которые действительно превышают рейтинг 8,7, но я думаю, что они не соответствуют всей модели рейтинга изОт 0 до 10.
Я отредактировал код, так что в настоящее время он печатает значения рейтинга.Обратите внимание на выражение:
if my_float >= 8.7 and my_float <= 10:
Это выражение не только гарантирует, что Вы получите баллы, равные или превышающие 8,7, но также они не могут быть равными или превышающими максимальный рейтинг, равный 10.
import re
import requests
from bs4 import BeautifulSoup
r = requests.get('https://www.imdb.com/chart/top?ref_=nv_mv_250')
soup = BeautifulSoup(r.text,'html.parser')
res = soup.find_all('strong')
for x in res:
q = re.sub(r'\s+',' ',x.text)
try:
my_float = float(q)
if my_float >= 8.7 and my_float <= 10:
print(q)
except ValueError as error:
print(error)
Надеюсь, это поможет.Если вы хотите сделать что-то еще с данными, а не распечатывать их, обязательно проверьте понимание списка или используйте другой блок кода, указанный ниже
(я заметил, что вы создали пустой список l = list()
)
import re
import requests
from bs4 import BeautifulSoup
l = list()
r = requests.get('https://www.imdb.com/chart/top?ref_=nv_mv_250')
soup = BeautifulSoup(r.text,'html.parser')
res = soup.find_all('strong')
for x in res:
q = re.sub(r'\s+',' ',x.text)
try:
my_float = float(q)
if my_float >= 8.7 and my_float <= 10:
l.append(my_float)
print(q)
except ValueError as error:
print(error)