Python中未知表单标识时如何自动提交Coinomi助记词工具表单?
解决Coinomi恢复短语工具的自动操作问题
我完全懂你遇到的头疼事——现在不少现代网页早就不用传统的HTML表单提交逻辑了,全靠JavaScript动态处理数据,所以直接用requests传参数肯定行不通。下面分两种场景给你具体的解决方案:
一、在线网页的自动操作方案
如果一定要用在线版工具,可以用浏览器自动化工具(比如Selenium)模拟真实用户操作,它能完美处理JavaScript渲染的内容:
- 先安装依赖包和对应浏览器驱动(以Chrome为例):
pip install selenium
- 编写Python代码模拟操作流程:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 初始化Chrome浏览器驱动 driver = webdriver.Chrome() driver.get("https://coinomi.com/recovery-phrase-tool.html") try: # 等待恢复短语输入框加载完成,填入你的助记词 input_box = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "recovery-phrase")) ) input_box.send_keys("你的12/24词恢复短语") # 点击"Derive"按钮(如果按钮选择器不是ID,可通过浏览器F12查看调整) derive_btn = driver.find_element(By.ID, "derive-btn") derive_btn.click() # 等待结果加载完成并获取内容 result_area = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, "result-output")) ) print("解析结果:", result_area.text) finally: # 操作完成后关闭浏览器 driver.quit()
提示:你可以用浏览器开发者工具(F12)查看页面元素的实际ID或类名,调整代码里的选择器。
二、离线版工具的更安全方案
离线版的bip39-standalone.html确实更安全,不用联网暴露敏感数据。其实不用纠结于操作本地表单,有两种更省心的方式:
方式1:直接用Python实现BIP39逻辑
BIP39是标准化的助记词协议,有现成的Python库可以直接用,完全不用依赖网页:
- 安装bip39库:
pip install bip39
- 编写代码处理助记词:
import bip39 # 你的恢复短语 mnemonic = "你的12/24词恢复短语" # 先验证助记词有效性 if bip39.validate_mnemonic(mnemonic): # 生成种子(可设置密码,这里留空示例) seed = bip39.mnemonic_to_seed(mnemonic, passphrase="") print("生成的种子:", seed.hex()) # 如果需要推导密钥对,还可以结合hdwallet这类库实现 else: print("无效的恢复短语,请检查输入")
方式2:加载本地HTML并通过JS交互
如果你一定要用那个离线网页,可以用pywebview加载本地文件,再通过JavaScript和Python交互获取结果:
import webview def fetch_result(): # 执行网页内的JavaScript函数,获取解析结果 result = window.evaluate_js("deriveKeys()") print("解析结果:", result) # 替换成你本地bip39-standalone.html的实际路径 local_html_path = "file:///Users/xxx/Documents/bip39-standalone.html" window = webview.create_window("Coinomi离线恢复工具", url=local_html_path) # 页面加载完成后调用函数获取结果 webview.start(fetch_result)
提示:先安装依赖:pip install pywebview,路径要换成你本地文件的真实路径。
内容的提问来源于stack exchange,提问作者JamieDimon
相关产品推荐
相关产品推荐

