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

使用MechanicalSoup提交表单后如何获取返回结果的咨询

MechanicalSoup表单提交返回结果调取说明

返回结果存储位置

调用submit_selected()方法提交表单后,返回的结果会自动同步到StatefulBrowser实例的两个核心属性中:

  • browser.response:原始HTTP响应对象,包含响应状态码、响应头、未解析的原始响应文本等底层信息
  • browser.page:经过BeautifulSoup解析后的结构化DOM对象,可直接调用所有BeautifulSoup支持的查找、提取方法

常见调取方式

1. 验证提交状态

首先可以通过响应状态码确认表单提交是否成功:

# 正常返回状态码为200
print(browser.response.status_code)

2. 获取完整原始响应内容

如果需要查看全部返回的HTML文本,可调用:

print(browser.response.text)

3. 提取返回结果中的指定内容

直接通过browser.page的选择器方法定位需要的信息,以你提交的邮编查询场景为例:

# 示例:获取返回结果的页面标题
print(browser.page.title.string)

# 示例:根据页面实际结构选择搜索结果容器,调整选择器匹配目标站点的结果类名即可
dermatologist_list = browser.page.select(".dermatologist-entry")
for entry in dermatologist_list:
    print(entry.get_text(strip=True))

修正后的完整代码示例

你原代码中form.print_summary()是打印提交前的表单结构,不会输出提交后的结果,修正后代码如下:

import mechanicalsoup

browser = mechanicalsoup.StatefulBrowser()
browser.set_verbose(2)
url = "https://www.dermcoll.edu.au/find-a-derm/"
browser.open(url)

browser.select_form("#find-derm-form")
browser["postcode"] = 3000
# 提交表单,方法本身也会返回response对象,和browser.response一致
browser.submit_selected()

# 调取返回结果
print("响应状态码:", browser.response.status_code)
print("返回页面标题:", browser.page.title.string)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:57:01