繁体   English   中英

Python //机械化//找不到表格

[英]Python // Mechanize // Can't find form

我正在使用Mechanize查找并提交表单。 代码如下所示:

url = "THIS_IS_A_LINK"
br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders=[('User-agent','chrome')]
br.open(url)
htmltext = br.open(url).read()
print htmltext

br.select_form(name="genericsearch_param.fulltext")
br["q"] = "metal"
res = br.submit()
content = res.read()
with open("mechanize_results.html", "w") as f:
   f.write(content) 

HTML看起来像这样:

<form method="get" action="/WHAT_SO_EVER" accept-charset="utf-8" class="clearfix" style="display: inline;"><input type="hidden" name="session.sessionid" value="sdfosdfosdf3482374892hsdfanw9023qjh"><input type="hidden" name="global_data.designmode" value="xf"><div class="clearfix">
                                <div class="left"><label for="genericsearch_param.fulltext">Searchterm</label><input type="text" class="text" id="genericsearch_param.fulltext" name="genericsearch_param.fulltext" value=""></div> <div class="right"><label for="genericsearch_param.part_id">Searcharea</label><select id="genericsearch_param.part_id" name="genericsearch_param.part_id">

我不想使用Selenium,因为它会在大多数浏览器打开和关闭中使用。 为什么机械化找不到表格?

只需在p上选择第一个表格

br.select_form(nr=0)

并且您确定“提交”按钮有效吗?:

submit_response = br.submit(name='action')submit_response = br.submit(label='action')

您尝试选择哪种形式可能会造成混淆。

非常感谢你。 是的,以上内容仅适用于其中一种形式的网站。 然后,当然,第一个也是唯一的一个。 查找我使用的表格

br.select_form(nr=0)
   for f in br.forms():
print f

带给我标签。 再次尝试并学习有关stackoverflow的丰富经验!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM