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

使用BeautifulSoup和Requests爬取Futbin遇InvalidURL错误求解决

问题解决方法

错误原因分析

  1. 403 Forbidden错误:Futbin网站有反爬机制,直接用requests发起请求会被识别为非浏览器访问,从而被拒绝服务。
  2. InvalidURL错误:第二段代码里你把第一次请求返回的Response对象(不是字符串URL)传给了requests.get(),导致URL解析失败。
  3. 解析方式不合理:用字符串split解析HTML非常脆弱,页面结构稍有变动就会失效,应该用BeautifulSoup的选择器来精准定位元素。

具体修复步骤

  • 添加请求头:模拟浏览器发送请求,至少带上User-Agent字段。
  • 修正URL传递错误:直接使用原始的URL字符串,不要重复传入Response对象。
  • 用BeautifulSoup定位元素:通过class选择器直接获取目标价格元素,避免字符串拆分的不稳定问题。

修正后的完整代码

import requests
from bs4 import BeautifulSoup

# 设置请求头,模拟浏览器访问
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

# 目标页面URL
url = "https://www.futbin.com/23/player/50188/bruno-guimaraes"

# 发送请求
response = requests.get(url, headers=headers)
# 检查请求是否成功
if response.status_code == 200:
    soup = BeautifulSoup(response.text, "html.parser")
    # 定位PS价格元素(class为box_price box_price_ps下的price_big_right)
    price_element = soup.select_one('.box_price.box_price_ps .price_big_right')
    if price_element:
        # 获取文本内容并处理格式
        price_text = price_element.get_text(strip=True)
        # 替换逗号为点,转换为float类型
        wert = float(price_text.replace(',', '.'))
        print(wert)
    else:
        print("未找到目标价格元素")
else:
    print(f"请求失败,状态码:{response.status_code}")

额外说明

  • 若频繁请求可能触发IP封禁,可考虑添加代理或增加请求间隔。
  • Futbin可能会更新页面结构,后续若选择器失效,需重新检查HTML结构调整选择器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:40:40