栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

mechanize._mechanize.FormNotFoundError:没有与名称'q'匹配的表格

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mechanize._mechanize.FormNotFoundError:没有与名称'q'匹配的表格

您正在尝试选择一个名为的表单

q
,该表单不存在。似乎该表单已被命名
f
。(但是,我无法在浏览器中验证-
即使禁用了Javascript,我也只能看到一个不同的名称。)

一个简单的Google搜索可以像这样完成:

import os, subprocessimport reimport mechanizefrom bs4 import BeautifulSoup#prepare mechanizebr = mechanize.Browser()br.set_handle_robots(False)br.set_handle_equiv(False)br.addheaders = [('User-agent', 'Mozilla/5.0')] br.open('http://www.google.com/')# do the querybr.select_form(name='f')   # Note: select the form named 'f' herebr.form['q'] = 'here goes your query' # querydata = br.submit()# parse and outputsoup = BeautifulSoup(data.read())print soup

这应该给你的想法。

更新:如何找到正确的形式“选择器”

要打印可用表格的名称,您可以执行以下操作:

for form in br.forms():    print form.name

使用交互式控制台时,这非常方便。

您不一定要使用表格的名称,但是您可能会给出其他提示以选择正确的表格。例如,在某些页面上,表单根本没有名称。然后,您仍然可以根据表格的编号进行选择,例如

br.select_form(nr=1)
页面上的第二个表格。请查看
help(br.select_form)
详细信息。此外,
list(br.forms())
还会为您提供所有表格的列表,您可以进一步检查这些表格。

另一种选择是在通常的浏览器中手动检查页面。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668538.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号