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

从Epic Games Store获取游戏价格时遭遇403错误求助

解决Epic Games Store页面请求403错误并提取游戏价格的方案

403错误是因为Epic的服务器识别出你的请求来自爬虫程序,直接拒绝了访问。下面是具体的解决步骤:

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

最直接的解决方法是给请求加上User-Agent头,模拟真实浏览器的请求。服务器会通过这个字段判断请求来源,添加后大概率能绕过基础反爬拦截。

修改后的代码如下:

import requests
from bs4 import BeautifulSoup

url = "https://store.epicgames.com/ru/p/cities-skylines"

# 模拟Chrome浏览器的请求头,可根据自己的浏览器版本调整
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'
}

response = requests.get(url, headers=headers)

if response.status_code == 200:
    soup = BeautifulSoup(response.text, 'html.parser')

    # 注意:Epic页面的CSS类名经常变动,需要确认当前页面的正确类名
    price_element = soup.find(class_='css-119zqif')

    if price_element is not None:
        price = price_element.get_text(strip=True) 
        print("《城市:天际线》价格:", price)
    else:
        print("未找到价格元素,可能CSS类名已更新")
else:
    print("请求错误,状态码:", response.status_code)

2. 注意CSS类名的变动

Epic Games Store的页面样式会不定期更新,你代码里用的css-119zqif这个类名可能随时失效。如果运行后提示“未找到价格元素”,可以打开浏览器的开发者工具(F12),定位价格元素,复制最新的类名或其他选择器替换。

3. 动态渲染页面的处理(如果上述方法无效)

如果添加请求头后还是无法获取到价格,说明页面采用了动态渲染(比如通过JavaScript加载内容),这时候需要用浏览器自动化工具模拟真实浏览行为。下面是用Selenium实现的示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

url = "https://store.epicgames.com/ru/p/cities-skylines"

# 自动安装Chrome驱动并初始化浏览器
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get(url)

# 可以添加显式等待,确保元素加载完成(示例中简化处理)
try:
    price_element = driver.find_element(By.CLASS_NAME, 'css-119zqif')
    print("《城市:天际线》价格:", price_element.text.strip())
except:
    print("未找到价格元素,可能选择器已失效")

driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:23:24