请求Ekonika网站返回Qrator脚本,如何正确解析该网站?
解决Ekonika网站Qrator反爬的页面获取问题
你遇到的是Qrator反爬系统的拦截,这个系统会通过加载JS脚本验证请求是否来自真实浏览器,基础requests.get因为不执行JS,所以只能拿到验证页面而非目标内容。以下是可行的解决方法:
方法1:使用无头浏览器执行JS验证
这类工具(如Selenium、Playwright)能模拟真实浏览器环境,自动执行页面中的验证脚本,获取经过验证后的真实页面内容。
示例(Playwright):
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=True) page = browser.new_page() page.goto("https://ekonika.ru/catalog/view/en00173cn22black22z") # 等待页面加载稳定 page.wait_for_load_state("networkidle") html_content = page.content() browser.close() # 后续可解析html_content获取目标信息
示例(Selenium):
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() options.add_argument("--headless=new") options.add_argument("--disable-gpu") driver = webdriver.Chrome(options=options) driver.get("https://ekonika.ru/catalog/view/en00173cn22black22z") # 可添加显式等待,确保验证完成 html_content = driver.page_source driver.quit() # 解析html_content
方法2:完善请求头(仅作基础尝试)
基础requests请求缺少真实浏览器的标识,可先尝试添加完整请求头模拟浏览器:
import requests headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.5", "Connection": "keep-alive", "Upgrade-Insecure-Requests": "1" } response = requests.get("https://ekonika.ru/catalog/view/en00173cn22black22z", headers=headers) print(response.text)
注意:这种方法大概率无法绕过Qrator的JS验证,仅作为基础尝试。
关键说明
Qrator的验证逻辑会动态更新,若遇到滑块、验证码等复杂验证,可能需要结合验证码识别服务或手动验证,但无头浏览器仍是最通用的解决方案。
内容的提问来源于stack exchange,提问作者Aida Idrisova
相关产品推荐
相关产品推荐

