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

如何使用Python的requests库实现类似Selenium的点击按钮、复制粘贴操作?

类Selenium交互功能的Python轻量实现方案

requests是纯HTTP请求库,仅能收发网络请求,不支持JS渲染、DOM操作这类浏览器层面的交互,所以无法直接模拟按钮点击、复制粘贴行为,以下是两种可行的替代方案,运行效率远高于Selenium:

方案1:抓包逆向接口,纯requests实现交互

  • 核心逻辑:前端按钮点击、提交操作本质上都是向服务端发送特定的HTTP请求,你可以通过浏览器F12开发者工具的「网络」面板,捕获点击操作对应的请求URL、请求头、参数、请求体内容,直接用requests模拟发送即可,完全没有浏览器层面的开销,速度最快。
  • 适用场景:接口无复杂加密、交互逻辑简单的站点
  • 示例代码:
import requests

# 填入抓包获取的请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Cookie": "抓包获取的有效Cookie",
    "Referer": "抓包获取的来源页地址"
}
# 填入抓包获取的请求参数,对应你要粘贴提交的内容
post_data = {
    "content": "需要提交的内容"
}
# 模拟点击提交按钮的请求
response = requests.post("https://example.com/submit", headers=headers, data=post_data)
# 打印返回结果,对应点击后要复制的内容
print(response.json())
  • 优缺点:执行速度最快,资源占用极低;缺点是需要人工分析接口,遇到JS加密签名的参数时,需要额外逆向JS逻辑。

方案2:轻量无头浏览器工具实现交互

如果站点接口加密复杂,逆向成本高,可以用比Selenium更轻量的无头浏览器工具,支持完整的DOM交互,启动速度、执行效率比Selenium高30%以上:

子方案2.1:requests-html(语法接近requests,学习成本低)

requests-html是requests官方作者开发的库,内置Chromium无头渲染能力,支持基础的点击、输入、元素取值操作:

from requests_html import HTMLSession

session = HTMLSession()
resp = session.get("https://example.com")
# 渲染页面JS
resp.html.render()
# 模拟点击按钮
submit_btn = resp.html.find("#submit-button", first=True)
submit_btn.click()
# 获取元素文本(对应复制操作)
copy_content = resp.html.find("#result-text", first=True).text
# 输入内容到文本框(对应粘贴操作)
input_box = resp.html.find("#input-area", first=True)
input_box.fill(copy_content)

子方案2.2:Playwright无头模式(交互能力强,执行效率高)

Playwright是微软推出的浏览器自动化工具,默认支持无头模式,内置自动等待逻辑,无需手动写休眠等待,执行效率远高于Selenium:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # 启动无头Chromium,headless参数默认为True,调试时可以改成False显示界面
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    page.goto("https://example.com")
    # 模拟点击按钮
    page.click("#submit-button")
    # 获取元素文本(对应复制操作)
    copy_content = page.locator("#result-text").text_content()
    # 输入内容到文本框(对应粘贴操作)
    page.fill("#input-area", copy_content)
    browser.close()
  • 优缺点:无需分析接口,支持所有复杂JS交互场景,比Selenium快很多;缺点是执行速度略低于纯requests方案。

附加:剪贴板操作工具

如果你需要和系统剪贴板交互,可以用pyperclip库实现复制粘贴:

import pyperclip
# 写入内容到系统剪贴板(复制)
pyperclip.copy("需要复制的内容")
# 读取系统剪贴板内容(粘贴)
paste_content = pyperclip.paste()

内容的提问来源于stack exchange,提问作者yeji

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:45:05