python - RoboBrowser 表单提交

标签 python robobrowser

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

相关文章:

python - 为什么我可以重新分配 dict.update 但不能重新分配 dict.__setitem__

python - 使用python(robobrowser)下载图片和pdf

python - 我的歌词机器人不向服务器发送字符串

python - 定义类时引用 __init__(self) 函数中的 self 约定理解实例对象

python - 如何在我的 App Engine 应用程序中请求本地 URL?

python - TypeError:无法创建一致的方法解析顺序(MRO)

python - 猴子在另一个应用程序中修补 Django 应用程序

python - 获取 FB token Python

Python:RoboBrowser 类型错误: 'NoneType'