fix(book): 修复文件下载中的重定向处理问题
- 添加 allow_redirects=False 参数避免自动重定向 - 实现手动处理 301、302、307、308 状态码的重定向逻辑 - 在重定向时设置 referer 头信息 - 添加重定向日志输出便于调试 - 在 Windows 环境配置文件中添加 aa 变量设置
This commit is contained in:
@@ -0,0 +1 @@
|
||||
aa=9999999
|
||||
@@ -91,8 +91,11 @@ class BookService:
|
||||
@retry(stop=stop_after_attempt(3))
|
||||
def download_file(self, file_url: str, dir_name: str, file_name: str): # 下载文件
|
||||
try:
|
||||
response = self.session.get(file_url, stream=True)
|
||||
response.raise_for_status()
|
||||
response = self.session.get(file_url, stream=True, allow_redirects=False)
|
||||
if response.status_code in (301, 302, 307, 308): # 非200状态码,重新请求
|
||||
file_url = response.headers["location"]
|
||||
print(f'跳转页面了:{file_url}')
|
||||
response = self.session.get(file_url, headers={"referer": file_url}, stream=True)
|
||||
print(f"下载状态码:{response.status_code} {file_url}")
|
||||
print(dir_name + "/" + file_name)
|
||||
content_type = response.headers.get('Content-Type', '')
|
||||
|
||||
Reference in New Issue
Block a user