2016-03-03 57 views
1

我正在嘗試使用我的用戶名和密碼登錄網站,轉到報告頁面,選擇條件並下載報告。我試圖使用請求自動執行它。Python請求帖子被服務器阻止

到目前爲止,我有:

report_page_url = 'http://url......' 
signin = {username, password} 
data = { 
    'from_day': '1', 
    'from_month': '3', 
    'from_year': '2016'} 

with requests.Session() as s: 
    s.post(login_url, data=signin) 
    download = s.post(report_page_url, data=data) 

我可以登錄網站先上後,並下載報告頁面的頁面內容。

但是,每次我requests.post報告頁面上,並通過在PARAMS填寫表格時,它重定向我到一個頁面錯誤信息:

您正試圖修改設置從似乎不是來自FreePBX頁面鏈接或按鈕的URL。如果您在以下網址中手動輸入 ,就會發生這種情況。此操作已被阻止,因爲 HTTP_REFERER與您當前的SERVER不匹配。如果您需要 此訪問權限,您可以在高級 設置中設置Check Server Referrer = false以禁用此安全檢查。

反正有反應嗎?

謝謝!

+0

您是否要求我們幫助您繞過他人網站的安全? – IanAuld

+0

這是你的FreePbx服務器嗎? – arctelix

+0

@IanAuld呃...這不是我的網站/服務器,但我們支付的服務。我只想自動下載報告。不幸的是,他們沒有任何apis。我已經與其他網站一起下載了報告,節省了大量時間,並且從未遇到過這個問題。 – viviwill

回答

1

聽起來像他們實際上檢查HTTP_REFERER並拒絕來自國外的帖子。嘗試添加http_referer頭的要求,是這樣的:

s.headers.update({'referer': my_referer}) 

你需要制定出他們希望在my_referer,看看有什麼價值。可能只是他們自己的域名。

+0

非常感謝!通過它的領域,完美的作品。 – viviwill