我正在尝试使用 robobrowser 在网站上自动提交表单,但在提交表单后,我没有得到正确的响应,而是显示了我所在的同一页面。这是我的代码
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
最佳答案
您可以尝试指定并传递表单的id
..
browser = RoboBrowser(id='IdOfTheForm')
如果这不起作用,您可以尝试传递 header ,
通过使用请求
之类的。
import requests
start = requests.session()
open = start.get('UrlOfTheWebsite')
print(open.headers)
并通过执行以下操作放置您想要的合适标题
start.headers = open.headers
browser = RoboBrowser(id='IdOfTheForm',session=start,history=True)
如果显示响应内容,可以使用parsed
方法。
res = browser.submit_form(form)
print(res.parsed)
您甚至可以在提交表单时在 submit
中指定按钮name
。您必须检查按钮的名称
res = browser.submit_form(form, submit='NameOfTheButton')
然后尝试。
print(res.parsed)
希望它能工作,如果它不提供源代码。
关于python - RoboBrowser 表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42575421/