首页 > 解决方案 > 带有代理的python请求不能遵循重定向

问题描述

s = requests.Session()
r_token = s.get('https://www.netflix.com/Login',
                                allow_redirects=False,
                                proxies=proxies,
                                headers={'User-Agent': UserAgent().random},
                            )

我使用代理向 netflix 发出了 python 请求,但结果不能,但如果不使用代理,他可以按照重定向 url

最终网址应为https://www.netflix.com/[country-code]/Login

标签: pythonredirectproxypython-requests

解决方案


您需要设置allow_redirects=True, 以遵循重定向:

import logging, requests
logging.basicConfig(level=logging.DEBUG)

#proxies = {'https': '144.217.161.149:8080'}
proxies={}
ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.35 Safari/537.36'
s = requests.Session()
r = s.get('https://www.netflix.com/Login',
                                allow_redirects=True,
                                proxies=proxies,
                                headers={'User-Agent': ua},
                            )

print (r.status_code, r.reason)

印刷:

DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): www.netflix.com:443
DEBUG:urllib3.connectionpool:https://www.netflix.com:443 "GET /Login HTTP/1.1" 302 0
DEBUG:urllib3.connectionpool:https://www.netflix.com:443 "GET /de-en/Login HTTP/1.1" 200 None
(200, 'OK')

当您使用代理时,应该会发生相同的行为。
Netflix 阻止/限制通过代理/v​​pn 的访问。


推荐阅读