You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用BS4和Python爬取曼城官网赛程日期失败求助

问题解决:曼城官网赛程日期提取失败

问题原因

  1. 动态渲染限制:曼城官网的赛程页面通过JavaScript动态加载比赛数据,requests.get()只能获取初始静态HTML,无法获取JS生成的动态内容,导致BeautifulSoup找不到目标元素。
  2. 类名匹配错误:你使用的fixture-header__competition并非日期文本所在的标签类名,实际日期通常存放在fixture-header__date类的元素中。

解决方案

方案一:使用Selenium处理动态页面

Selenium可以模拟浏览器加载页面,获取完整的动态渲染内容。

首先安装依赖:

pip install selenium webdriver-manager

修改后的代码:

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

url = 'https://www.mancity.com/fixtures'
# 初始化Chrome驱动(自动下载匹配版本)
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get(url)

# 显式等待,直到日期元素加载完成(替代固定sleep,更可靠)
WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CLASS_NAME, "fixture-header__date"))
)

# 获取完整页面源码
page_source = driver.page_source
driver.quit()

soup = BeautifulSoup(page_source, 'html.parser')
# 提取日期文本并去重(避免重复的日期标题)
date_tags = soup.find_all("div", class_="fixture-header__date")
dates = list({tag.get_text(strip=True) for tag in date_tags})

print(dates)

方案二:直接调用API接口(高效推荐)

通过浏览器开发者工具(F12 → Network → XHR/Fetch)可以找到页面加载赛程的API接口,直接请求接口获取JSON格式数据,无需解析HTML:

  1. 打开曼城赛程页面,打开开发者工具,刷新页面。
  2. 在Network标签下筛选XHR请求,找到加载赛程数据的接口(具体地址需自行确认)。
  3. 直接请求该接口,解析JSON提取日期:
import requests

api_url = "替换为实际找到的API接口地址"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
response = requests.get(api_url, headers=headers)
data = response.json()

# 从JSON数据中提取日期(示例,需根据实际数据结构调整)
dates = [item["date"] for item in data["fixtures"] if item["status"] == "upcoming"]
print(dates)

注意事项

  • 网站可能存在反爬机制,请求时建议添加合理的User-Agent头,控制请求频率。
  • 显式等待比固定time.sleep()更可靠,能有效避免因网络延迟导致的元素未加载问题。

内容的提问来源于stack exchange,提问作者Manas Sujal Abraham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:16:12