Как обходить защиту от selenium?

Сегодня пытался спарсить эту страницу https://stalcraft.wiki/items/other/40lp на python. Но она оказалась динамической и тогда я нашел URL запрос stalcraft.wiki по которому я получаю нужные мне данные. Чтобы получить его автоматически использовал этот код:

оригинал кода

import requests
url = "https://stalcraft.wiki/next-api/auction-history?region=ru&id=410p"
res = requests.get(url).json()
print(res)

Но получил это:

введите сюда описание изображения

Как я понял это защита от парсинга. Тогда я прибегнул к помощи Selenium и решил просто открыть страницу этим кодом:

оригинал кода

from selenium import webdirver
import time
from selenium_stealth import stealth

def init_webdriver():
    driver = webdriver.Chrome()
    stealth(driver,
            languages=["en-US","en"],
            vendor = "Google Inc",
            platform = "Win64",
            webgl_vendor = "Intel Inc",
            renderer="Intel Iris OpenGL Engine"
    return drive

driver = init_webdriver()
driver.get("https://stalcraft.wiki/next_api/auction-history?region=ru$id=401p")
time.sleep(10)

Но получил такой же ответ.

Вопрос: как спарсить данные со страницы?


Ответы (1 шт):

Автор решения: ykoavlil

Судя по всему из всех headers нужен только Referer

import requests

response = requests.get(
    url='https://stalcraft.wiki/next-api/auction-history',
    params={
        'region': 'ru',
        'id': '40lp',
    },
    headers={
        'Referer': 'https://stalcraft.wiki/items/other/40lp'
    }
)

print(response.json())

Ответ сократил

{
    "total": 82492,
    "prices":
    [
        {
            "amount": 1,
            "price": 10500,
            "time": "2024-12-05T10:34:53Z",
            "additional":
            {}
        },

.....
    ]
}
→ Ссылка