使用Python爬虫获取网页元素时始终返回'None'的求助
解决网页胜场数爬取返回None的问题
问题原因
原代码里的class='text-success '可能因网页结构更新、class名带多余空格,或是未定位到正确的父容器,导致无法找到目标元素。另外也可能是请求未正常获取到网页内容。
修正后的代码
from bs4 import BeautifulSoup import requests URL = "https://www.fctables.com/teams/sunderland-194998/?template_id=11" response = requests.get(URL) # 先确认请求成功 if response.status_code == 200: soup = BeautifulSoup(response.text, "html.parser") # 定位到"Overall match stats"的统计区域 overall_stats = soup.find("div", string="Overall match stats").find_parent("div", class_="card") if overall_stats: # 在该区域内查找胜场数元素 win_element = overall_stats.find("div", class_="text-success") if win_element: # 提取文本并转为整数 wins = int(win_element.get_text(strip=True)) print(wins) # 输出6 else: print("未找到胜场元素") else: print("未找到总比赛统计区域") else: print(f"请求失败,状态码:{response.status_code}")
关键调整说明
- 增加请求状态码判断,确保网页内容正常获取
- 先定位到"Overall match stats"的父容器,缩小查找范围,避免匹配到页面其他无关的
text-success元素 - 用
get_text(strip=True)去除文本多余空格,再转为整数
内容的提问来源于stack exchange,提问作者Xdvanced
相关产品推荐
相关产品推荐

