python - 在请求中提交表单后处理重定向
问题描述
我正在尝试从网站上抓取内容:URL1:http: //jamabandi.nic.in/land records/querylink.aspx
因此,当您提交表单时,它会重定向到另一个页面:URL2: http: //jamabandi.nic.in/land%20records/owner.aspx
我正在尝试在表单提交后抓取内容。我注意到,提交表单时,URL1 会抛出 302 错误并重定向到 URL2。
但是,当我通过 Python 请求提交表单时,我得到的状态代码为 200。这是我正在使用的代码片段:
postFields = hidden_fields
postFields['ctl00$ContentPlaceHolder1$ddldname'] = district
postFields['ctl00$ContentPlaceHolder1$ddltname'] = tehsil
postFields['ctl00$ContentPlaceHolder1$ddlvname'] = village
postFields['ctl00$ContentPlaceHolder1$Button1'] = 'Submit'
header = {}
url = 'http://jamabandi.nic.in/land%20records/querylink.aspx'
page = requests.post(url, data=postFields, headers=header, timeout=10, allow_redirects=True)
print page.status_code // 200
知道这里缺少什么吗?
解决方案
经过一番检查,这就是我认为可能发生的情况。
当您在您的网站上提交表单时,会发生重定向302
当您通过requests
重定向提交它时不会发生,但因此没有任何失败200
。
我不能告诉你到底发生了什么,因为我看不到APIs
. 这是我最好的猜测。
推荐阅读
- java - 测试在本地 Windows 机器上工作,但在 Linux 服务器上失败
- jsoup - 如何阻止 jsoup.clean 取消转义 € 和其他特殊字符
- python-3.x - 正则表达式使用 match 方法匹配 python3 中的模式
- c - 使用 Tcl C API 的 Lib 崩溃可能是由于错误的 refCount 使用
- prolog - Prolog:过滤目标列表并保留成功的目标
- javascript - 如何将 .content().filter 方法从 jquery 转换为 vanilla javascript
- swift - 最小化 macOS 应用程序 + 分布式通知中心(macOS 上的后台模式)
- c++ - qt中的弹出小部件
- python - 使用异步队列时如何修补类实例方法
- c++ - 帕斯卡三角失败超过第 14 行