Как обходить защиту от 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":
{}
},
.....
]
}
