2016-04-23 115 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