2017-08-20 44 views
0

當我使用urllib,urllib2或Python 2.7上的請求時,沒有人會以與將Chrome的起始網址複製並粘貼到Chrome或FireFox for Mac時的相同URL。爲什麼我的瀏覽器使用這個URL重定向我,但是Python不?

編輯:我懷疑這是因爲必須登錄到vk.com重定向。如果是這種情況,我該如何將登錄信息添加到我的腳本中?謝謝!

開始地址:https://oauth.vk.com/authorize?client_id=PRIVATE&redirect_uri=https://oauth.vk.com/blank.html&scope=friends&response_type=token&v=5.68

實際最終(重定向)URL:https://oauth.vk.com/blank.html#access_token=PRIVATE_TOKEN&expires_in=86400&user_id=PRIVATE

PRIVATE,PRIVATE_TOKEN =審查信息

下面是在這幾個嘗試之一:

import requests 

APPID = 'PRIVATE' 
DISPLAY_OPTION = 'popup' # or 'window' or 'mobile' or 'popup' 
REDIRECT_URL = 'https://oauth.vk.com/blank.html' 
SCOPE = 'friends' # https://vk.com/dev/permissions 
RESPONSE_TYPE = 'token' # Documentation is vague on this. I don't know what 
     # other options there are, but given the context, i.e. that we want an 
     # "access token", I suppose this is the correct input 

URL = 'https://oauth.vk.com/authorize?client_id=' + APPID + \ 
     '&display='+ DISPLAY_OPTION + \ 
     '&redirect_uri=' + REDIRECT_URL + \ 
     '&scope=' + SCOPE + \ 
     '&response_type=' + RESPONSE_TYPE + \ 
     '&v=5.68' 

# with requests 

REQUEST = requests.get(URL) 

RESPONSE_URL = REQUEST.url 

我希望你注意到,無論我的代碼有什麼問題。

額外信息:我需要重定向,因爲PRIVATE_TOKEN值是進一步編程所必需的。

我嘗試了一些調試,但解釋器和IPython都沒有打印出調試信息。

謝謝!

+0

我們不能看到從'服務器響應https://oauth.vk.com/authorize?client_id = PRIVATE&redirect_uri = https:// oauth.vk.com/blank.html&scope = friends&response_type = token&v = 5.68'如果您不提供私人令牌。它需要一個客戶端ID – mehulmpt

+0

@mehulmpt嘗試3882511,它是公共應用程序的ID。 –

回答

0

問題是未在Python環境中登錄的結果。

解決方案:

使用斜紋Python中創建瀏覽器登錄

代碼:

from twill.commands import * 

BROWSER = get_browser() 

BROWSER.go(URL) # URL is the URL concatenated in the question 

RESPONSE_URL = BROWSER.get_url() 
相關問題