2

我正在尝试使用 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
4

1 回答 1

3

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

browser = RoboBrowser(id='IdOfTheForm')

如果这不起作用,您可以尝试使用requestslike 传递 headers 。

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)

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

res = browser.submit_form(form, submit='NameOfTheButton')

然后尝试。

print(res.parsed)  

希望它有效,如果它不提供源代码。

于 2017-03-22T10:41:44.510 回答