2016-04-23 75 views
1

我想使用Python提交POST请求,最好是Python3。 问题是,服务器必须以某种方式阻止请求(即使有正确的标头和cookie等)。Python3请求 - 不工作

要亲自看看,只需转到此链接,填写任何电话号码和电子邮件,然后点击提交。我希望复制这个,即使我需要使用robobrowser或其他东西(这也不会起作用)。

https://sprint-locator.safely.com/signupBasicInformation.htm

我也试图与卷曲,没有复制它。

import requests 

payload = {'email': 'admin%40dr.com', 'emailConfirm': 'admin%40dr.com', 'phoneNumber.areaCode': '302', 'phoneNumber.prefix': '750', 'phoneNumber.line': '1213'} 
url='https://sprint-locator.safely.com/signupBasicInformation.htm' 
r = requests.post(url, payload) 
print(r.text) 
+0

所以你可以从表单提交请求,但不从cURL或Python /请求提交请求? – jonrsharpe

+0

@Dylan请提供有效的Sprint电话(并可能会发送电子邮件),因为我正在重定向到https://sprint-locator.safely.com/signUpAccountSuspended.htm –

+0

我注意到如果我将用户 - 使用有效的Firefox用户代理的代理标题如果我没有设置标题,如果这很有趣,我会得到不同的页面。 –

回答

0

有些网站需要“适当” User-agent,出于安全原因(原文如此!),筛选出机器人(及以上)只允许浏览器客户端。

import requests 

headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0'} 
payload = {'email': 'admin%40dr.com', 'emailConfirm': 'admin%40dr.com', 'phoneNumber.areaCode': '302', 'phoneNumber.prefix': '750', 'phoneNumber.line': '1213'} 
url='https://sprint-locator.safely.com/signupBasicInformation.htm' 
r = requests.post(url, payload, headers=headers) 
print(r.text) 
+0

这是真的,我已经用用户代理对它进行了测试,并在这里得到了。 问题是,所做的只是填写表单,并且从未提交过。 如果它工作正常,你会被发送到: https://sprint-locator.safely.com/signUpAccountSuspended.htm 我真的很感激你的时间@kwarunek – Dylan