为什么我的浏览器使用此 URL 重定向我,但 Python 却没有?

Why do my browsers redirect me with this URL, but Python doesn't?

当我在 Python 2.7 上使用 urllib、urllib2 或请求时,没有一个结果与我复制并粘贴起始 URL 时相同 URL Chrome 或 Mac.

的 FireFox

编辑:我怀疑这是因为必须登录 vk.com 才能重定向。如果是这种情况,如何将登录添加到我的脚本中?谢谢!

开始 URL: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_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都没有打印出调试信息。

谢谢!

问题是未在Python环境中登录导致的。

解决方案:

使用 twill 在 Python 中创建浏览器并登录。

代码:

from twill.commands import *

BROWSER = get_browser()

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

RESPONSE_URL = BROWSER.get_url()