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

如何通过循环向卡特兰数计算器网站传入n值并保存结果?

卡特兰数大数获取解决方案

方法一:Selenium模拟浏览器操作

直接模拟用户输入和点击操作,无需分析请求细节,适合快速实现。

操作步骤

  • 先安装依赖:pip install selenium,并下载对应浏览器的驱动(如ChromeDriver)配置到环境变量
  • 编写循环遍历目标n值,每次完成输入、点击、结果提取流程

代码示例

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

# 定义要获取的n范围,示例为1到20
target_ns = range(1, 21)
catalan_results = []

# 初始化Chrome浏览器
driver = webdriver.Chrome()

try:
    for n in target_ns:
        # 打开目标页面
        driver.get("http://www.kourbatov.com/math/calculators/catalannumberscalculator.htm")
        
        # 定位输入框并输入n值
        input_field = driver.find_element(By.ID, "n")
        input_field.clear()
        input_field.send_keys(str(n))
        
        # 点击计算按钮
        calc_btn = driver.find_element(By.CSS_SELECTOR, 'input[type="submit"][value="Calculate"]')
        calc_btn.click()
        
        # 等待结果加载完成并提取
        result_elem = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.ID, "result"))
        )
        catalan_num = result_elem.text.strip()
        catalan_results.append(catalan_num)
        print(f"第{n}个卡特兰数:{catalan_num}")
finally:
    # 关闭浏览器
    driver.quit()

# 输出最终结果数组
print("卡特兰数列表:", catalan_results)

方法二:直接发送POST请求(更高效)

通过抓包分析网站的表单提交逻辑,用requests直接发送请求,避免浏览器开销。

操作步骤

  • 安装依赖:pip install requests beautifulsoup4
  • 构造表单数据,循环发送POST请求,解析响应提取结果

代码示例

import requests
from bs4 import BeautifulSoup

target_ns = range(1, 21)
catalan_results = []
site_url = "http://www.kourbatov.com/math/calculators/catalannumberscalculator.htm"

for n in target_ns:
    # 构造表单提交数据
    form_data = {
        "n": str(n),
        "submit": "Calculate"
    }
    # 发送POST请求
    resp = requests.post(site_url, data=form_data)
    # 解析HTML获取结果
    soup = BeautifulSoup(resp.text, "html.parser")
    result_div = soup.find("div", id="result")
    if result_div:
        catalan_num = result_div.text.strip()
        catalan_results.append(catalan_num)
        print(f"第{n}个卡特兰数:{catalan_num}")

print("卡特兰数列表:", catalan_results)

注意事项

  • 不要高频发送请求,避免触发网站反爬机制
  • 若网站更新表单字段,需重新抓包调整form_data参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:55:22