好的,首先:
提供的数据并不一致,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)