есть код import asyncio from playwright.async_api import async_playwright from playwright_stealth import stealth_async async def main(): async with async_playwright() as playwright: browser = await playwright.chromium.launch(headless=False) context = await browser.new_context() page = await context.new_page() await stealth_async(page) await page.goto("https://www.gate.io/announcements/article/44882/") await page.wait_for_load_state("networkidle") await asyncio.sleep(100) await page.screenshot(path="nowsecure_success.png") element = await page.query_selector_all("h1") if element: text_content = await element.inner_text() print(text_content) await browser.close() asyncio.run(main()) Python import asyncio from playwright.async_api import async_playwright from playwright_stealth import stealth_async async def main(): async with async_playwright() as playwright: browser = await playwright.chromium.launch(headless=False) context = await browser.new_context() page = await context.new_page() await stealth_async(page) await page.goto("https://www.gate.io/announcements/article/44882/") await page.wait_for_load_state("networkidle") await asyncio.sleep(100) await page.screenshot(path="nowsecure_success.png") element = await page.query_selector_all("h1") if element: text_content = await element.inner_text() print(text_content) await browser.close() asyncio.run(main()) на сам сайт, https://www.gate.io/ заходит спокойно, всё грузит. НО как пытаешь зайти на статью, выводит вот так: текст самой статьи он не грузит, как блять мне нормально загрузить всё?
devtools > network > xhr найди апи запрос, который возвращает текст статьи сделай этот запрос напрямую через playwright апи или aiohttp
тебе не нужно рендерить всю страницу, если текст загружается отдельным запросом через js. ты можешь имитировать этот запрос напрямую, быстрее и стабильнее
На первый взгляд как будто достаточно сделать просто GET запрос на страницу с артиклом (без использования браузера). Далее получить содержимое скрипта в формате Json по xPath: //*[@id="__NEXT_DATA__"] Код //*[@id="__NEXT_DATA__"] И просто распарсить нужные данные из Json. Такое работает в Postman, но возможно спустя определённое число реквестов что-то пойдёт не по плану, этого я не проверил.
Никакой защиты нет, просто не нужно юзать селениум. В подобном парсинге он не нужен и только вызывает гемор. Просто делай напрямую запрос на апишку и получай то что нужно, это удобнее и стабильнее.