使用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
相关产品推荐
相关产品推荐

