在Python爬虫中阻止重定向可以通过以下几种方法实现:
1. 使用`requests`库的`allow_redirects`参数:
import requestssession = requests.Session()response = session.get(url, allow_redirects=False) 设置为False来禁止重定向
2. 使用`urllib.request`模块,并继承`HTTPRedirectHandler`类重写`http_error_302`方法:
from urllib import requestclass NoRedirHandler(request.HTTPRedirectHandler):def http_error_302(self, req, fp, code, msg, headers):return fp 返回原始文件指针,不跟随重定向opener = request.build_opener(NoRedirHandler())response = opener.open(url) 使用自定义的opener打开URL
3. 使用`scrapy`框架,在`settings.py`中设置`REDIRECT_ENABLED`为`False`:

settings.pyREDIRECT_ENABLED = False
4. 使用`scrapy`框架,在`settings.py`中添加自定义下载中间件来禁止重定向:
settings.pyDOWNLOADER_MIDDLEWARES = {'myproject.middlewares.NoRedirectMiddleware': 100,}
然后在中间件文件`middlewares.py`中实现禁止重定向的逻辑:
middlewares.pyclass NoRedirectMiddleware(object):def process_response(self, request, response, spider):if response.status in (301, 302):return None 返回None来阻止重定向return response
选择适合您使用框架的方法来阻止重定向
