3

I'm trying to get the price of the game from the epic games store, but I get a 403 error

import requests
from bs4 import BeautifulSoup

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

response = requests.get(url)

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

    price_element = soup.find(class_='css-119zqif')

    if price_element is not None:
        price = price_element.get_text(strip=True) 
        print("Price Cities: Skylines:", price)
    else:
        print("Error")
else:
    print("Error:", response.status_code)

I tried to access the game page directly, and take the price information from the class in html, but I get the error "Request error: 403"

  • May be specific to the epic games site. I tested with the base page as well as other web pages and only the epic games webpage returned error 403. Since error 403 is a "permission denied" error, it may be specific to their site implementation. – Shorn May 24 '23 at 00:10

1 Answers1

0

You get to the cloudflare page dedicated to fighting robots. To get around this limitation, you need to imitate a real person. To do this, you can use the following library or similar. Here is an example of working code. Don't forget to pip install cloudscraper.

from bs4 import BeautifulSoup
import cloudscraper

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

scraper = cloudscraper.create_scraper()
response = scraper.get(url)

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

    price_element = soup.find('div', 'css-169q7x3').find(class_='css-119zqif')
    print(price_element)

    if price_element is not None:
        price = price_element.get_text(strip=True) 
        print("Price Cities: Skylines:", price)
    else:
        print("Error")
else:
    print("Error:", response.status_code)

result:

Price Cities: Skylines: 330 ₽

One remark. This library has free limitations and sometimes an error may occur: cloudscraper.exceptions.CloudflareChallengeError: Detected a Cloudflare version 2 Captcha challenge, This feature is not available in the opensource (free) version. Ignore it and get the result. But you can always rewrite your code using this API. If you sign up, they will give you a token for 10,000 requests per month. If this option does not suit you, look in the direction of selenium.

CarlosGDCJ
  • 424
  • 1
  • 8
user510170
  • 286
  • 2
  • 5