首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RoboBrowser表单提交

RoboBrowser表单提交
EN

Stack Overflow用户
提问于 2017-03-03 17:43:02
回答 1查看 5K关注 0票数 2

我试图使用机器人浏览器在网站上自动提交表单,但提交表单后,我没有得到正确的响应,相反,它显示了我所在的同一个页面。以下是我的代码

代码语言:javascript
复制
from robobrowser import RoboBrowser

browser = RoboBrowser()
browser.open("https://tin.tin.nsdl.com/pantan/StatusTrack.html")
form = browser.get_forms()[0]
form["ST_SEARCH_TYPE"].value = 'P'
form["ST_ACK_NUM"].value = 'Some Number'      #the ack. no.  

browser.submit_form(form)
browser.select('b')                           #shows the same page again
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-22 18:41:45

您可以尝试指定并传递表单的id

代码语言:javascript
复制
browser = RoboBrowser(id='IdOfTheForm')

如果这样做不起作用,您可以尝试通过使用requests来传递头文件。

代码语言:javascript
复制
import requests
start = requests.session()
open = start.get('UrlOfTheWebsite')
print(open.headers)

并通过执行以下操作来放置您需要的适当标头

代码语言:javascript
复制
start.headers = open.headers
browser = RoboBrowser(id='IdOfTheForm',session=start,history=True)

如果您显示响应的内容,则可以使用parsed方法。

代码语言:javascript
复制
res = browser.submit_form(form)
print(res.parsed)

您甚至可以在提交表单时在submit中指定按钮name。您必须检查button的名称

代码语言:javascript
复制
res = browser.submit_form(form, submit='NameOfTheButton')

然后试一试。

代码语言:javascript
复制
print(res.parsed)  

如果它不提供源代码,希望它能工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42575421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档