如何用Python Mechanize提交keywordsheeter.com的textarea并获取结果?
解决方法
你的核心问题是**select_form参数使用错误**:findersearchQueryInput是textarea控件的name,而非表单的name/id。需要先选中包含该控件的表单,再操作目标控件。
修正后的代码
import mechanize br = mechanize.Browser() br.set_handle_robots(False) br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] br.open("https://keywordsheeter.com/") print(br.title()) # 遍历表单,定位包含目标控件的表单 for form in br.forms(): if any(control.name == 'findersearchQueryInput' for control in form.controls): br.select_form(form=form) break # 给textarea设置内容 br['findersearchQueryInput'] = 'keto diet' # 提交表单并获取响应 response = br.submit() # 打印结果到控制台 print(response.read().decode('utf-8'))
关键修正说明
- 替换错误的表单选择逻辑:遍历所有表单,找到包含
findersearchQueryInput控件的表单并选中 - 修正控件赋值语法:直接通过控件name赋值,无需数组格式
- 提交后通过
response.read()获取页面内容并打印
注意:若该网站依赖JavaScript处理表单提交,mechanize可能无法正常工作(它不支持JS解析),这种情况下需改用Selenium等支持JS的自动化工具。
内容的提问来源于stack exchange,提问作者noah g
相关产品推荐
相关产品推荐

