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

Python爬取Futbin市场涨幅榜时出现AttributeError问题

解决Futbin市场Top Gainers爬取的AttributeError问题

错误根源

AttributeError: 'NoneType' object has no attribute 'find' 说明soup.find("div", id="24_hours_movers")返回了None——也就是没找到目标ID的元素,主要原因有两个:

  • 网站拦截了无身份标识的爬虫请求(你的requests.get未携带任何请求头,被识别为非浏览器访问)
  • 页面结构已更新,目标元素的ID或类名发生了变化

修复方案

1. 添加请求头模拟浏览器访问

给requests.get加上User-Agent头,避免被反爬拦截:

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
}
response = requests.get(URL, headers=headers)

2. 确认并修正元素选择器

如果添加头信息后仍找不到元素,需重新核对页面结构:

  • 打开Futbin市场页面,右键"检查"查看Market Movers板块的实际HTML结构
  • 确认Top Gainers所在容器的正确ID或类名(比如当前页面中目标容器ID可能已变更,需以实际页面为准)

3. 修复代码变量名错误

原代码最后一行的card_holders_div是未定义变量,应改为card_holder_divs(与上一行变量名保持一致)

修改后的完整代码示例

import requests
from bs4 import BeautifulSoup

URL = "https://www.futbin.com/market/"
WEBHOOK_URLS = [
    "x",
    "x"
]

# 添加请求头模拟浏览器
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
}

response = requests.get(URL, headers=headers)
response.raise_for_status()  # 主动抛出请求错误,方便排查问题

soup = BeautifulSoup(response.content, "html.parser")

# 分步查找,避免链式调用直接报错
movers_container = soup.find("div", id="24_hours_movers")
if not movers_container:
    print("未找到24_hours_movers容器,请检查页面结构或请求头")
else:
    top_gainers_div = movers_container.find("div", class_="col-md-6")
    if top_gainers_div:
        card_holder_divs = top_gainers_div.find_all("div", class_="d-inline")
        # 修复变量名错误,收集所有卡片容器
        card_holders = []
        for div in card_holder_divs:
            holders = div.find_all("div", class_="d-inline mx-2")
            card_holders.extend(holders)
        print(f"找到{len(card_holders)}个Top Gainers卡片")
    else:
        print("未找到Top Gainers所在的col-md-6容器")

额外提示

  • 如果页面是动态加载(比如Market Movers数据通过JS渲染),单纯用requests+BeautifulSoup可能无法获取内容,这时需要改用selenium或playwright模拟浏览器加载页面
  • 爬取前请遵守网站robots.txt规则,避免过度请求导致IP被封禁

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:11:27