You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium+Requests获页面截图遇阻,如何执行目标站点POST请求?

解决kad.arbitr.ru站点Selenium屏蔽及POST请求问题

我需要获取页面截图,但目标站点https://kad.arbitr.ru/屏蔽了Selenium。点击搜索按钮后页面无任何反应,通过开发者工具可发现该操作是通过XHR发送POST请求实现的。我是Python新手,请问如何在该站点执行POST请求?或者有没有其他解决方案?

用户提供的代码:

fp = webdriver.FirefoxProfile()
options = Options()
#options.headless = True
driver = webdriver.Firefox(options=options, executable_path=r'FILES\\geckodriver.exe', firefox_profile=fp)
driver.get('https://kad.arbitr.ru/')

#pickle.dump( driver.get_cookies() , open("cookies.pkl","wb")) #Cookies
#response = webdriver.request('POST', 'https://kad.arbitr.ru/Kad/SearchInstances')
#print(response)

for request in driver.requests:
    if request.response:
        print(
            request.url,
            request.response.status_code,
            request.response.headers['Content-Type']
        )

方案一:直接用requests库发送POST请求(新手友好)

既然搜索逻辑是通过XHR的POST请求完成的,完全可以跳过Selenium,直接用requests库模拟这个请求,步骤如下:

  1. 先安装requests库:
pip install requests
  1. 抓包获取关键信息:
    • 打开浏览器开发者工具(F12),切换到Network标签,点击站点的搜索按钮,找到SearchInstances这个POST请求
    • 复制请求头(Headers)里的Cookie、User-Agent,以及Form Data里的搜索参数(比如关键词、筛选条件)
  2. 编写代码发送请求:
import requests

# 请求地址为抓包到的URL
url = "https://kad.arbitr.ru/Kad/SearchInstances"

# 填入抓包得到的请求头,至少包含以下几项
headers = {
    "User-Agent": "你的浏览器User-Agent,例如Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0",
    "Cookie": "从浏览器复制的完整Cookie字符串",
    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
}

# 搜索参数,根据抓包的Form Data填充,比如搜索关键词
data = {
    "SearchString": "你要搜索的内容",
    # 其他必填参数从抓包结果中复制补充
}

# 发送POST请求并获取响应
response = requests.post(url, headers=headers, data=data)

# 打印响应内容,确认请求是否成功
print(response.text)

注意:Cookie存在过期时间,过期后需要重新从浏览器复制;如果请求被拦截,可补充更多抓包得到的请求头字段。

方案二:优化Selenium绕过检测,实现截图

如果必须使用Selenium完成截图,可以通过配置浏览器选项绕过站点的自动化检测,以Firefox为例:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
# 关闭Selenium的自动化特征标记
options.set_preference("dom.webdriver.enabled", False)
options.set_preference('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
# 设置与真实浏览器一致的User-Agent
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0")

# 初始化浏览器,新版本Selenium无需使用firefox_profile
driver = webdriver.Firefox(options=options)
driver.get('https://kad.arbitr.ru/')

# 模拟搜索操作(需根据页面实际元素调整选择器)
search_box = driver.find_element("id", "SearchString")  # 假设搜索框id为SearchString
search_box.send_keys("你的搜索关键词")
search_button = driver.find_element("id", "searchButton")  # 假设搜索按钮id为searchButton
search_button.click()

# 等待页面加载完成后截图
driver.implicitly_wait(10)
driver.save_screenshot("搜索结果截图.png")

# 关闭浏览器
driver.quit()

如果Firefox仍被检测,可尝试使用undetected-chromedriver库,该库专门针对反爬检测做了优化,安装后用法与普通Chrome驱动类似。


内容的提问来源于stack exchange,提问作者Руслан Зиборов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:20:43