Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
@@ -44,18 +44,19 @@ async def proxy(request: Request, path: str, target_url: Optional[str] = None):
|
|
44 |
if not target_url:
|
45 |
raise HTTPException(status_code=400, detail="必须提供目标URL")
|
46 |
|
47 |
-
|
48 |
-
headers = dict(request.headers)
|
49 |
-
# 移除可能导致问题的头
|
50 |
-
headers.pop("host", None)
|
51 |
-
headers.pop("content-length", None)
|
52 |
-
|
53 |
# 检查是否请求流式响应
|
54 |
stream_request = "stream" in request.query_params and request.query_params["stream"].lower() in ["true", "1", "yes"]
|
55 |
|
56 |
# 创建带有代理的 scraper
|
57 |
# 创建cloudscraper实例
|
58 |
scraper = cloudscraper.create_scraper()
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
# 检查环境变量PROXY是否存在
|
60 |
proxy = os.environ.get('PROXY')
|
61 |
if proxy:
|
@@ -68,7 +69,7 @@ async def proxy(request: Request, path: str, target_url: Optional[str] = None):
|
|
68 |
response = scraper.get('https://httpbin.org/ip')
|
69 |
print(response.text)
|
70 |
|
71 |
-
|
72 |
|
73 |
# 获取请求体
|
74 |
body = await request.body()
|
@@ -79,12 +80,25 @@ async def proxy(request: Request, path: str, target_url: Optional[str] = None):
|
|
79 |
params.pop("url", None)
|
80 |
params.pop("stream", None)
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
# 构建请求参数
|
83 |
request_kwargs = {
|
84 |
"url": target_url,
|
85 |
-
"headers":
|
86 |
-
"sec-fetch-dest": "document",
|
87 |
-
},
|
88 |
"params": params,
|
89 |
"stream": stream_request # 设置stream参数
|
90 |
}
|
|
|
44 |
if not target_url:
|
45 |
raise HTTPException(status_code=400, detail="必须提供目标URL")
|
46 |
|
47 |
+
|
|
|
|
|
|
|
|
|
|
|
48 |
# 检查是否请求流式响应
|
49 |
stream_request = "stream" in request.query_params and request.query_params["stream"].lower() in ["true", "1", "yes"]
|
50 |
|
51 |
# 创建带有代理的 scraper
|
52 |
# 创建cloudscraper实例
|
53 |
scraper = cloudscraper.create_scraper()
|
54 |
+
|
55 |
+
# 从请求中获取cookies并设置到scraper
|
56 |
+
cookies = request.cookies
|
57 |
+
for key, value in cookies.items():
|
58 |
+
scraper.cookies.set(key, value)
|
59 |
+
|
60 |
# 检查环境变量PROXY是否存在
|
61 |
proxy = os.environ.get('PROXY')
|
62 |
if proxy:
|
|
|
69 |
response = scraper.get('https://httpbin.org/ip')
|
70 |
print(response.text)
|
71 |
|
72 |
+
|
73 |
|
74 |
# 获取请求体
|
75 |
body = await request.body()
|
|
|
80 |
params.pop("url", None)
|
81 |
params.pop("stream", None)
|
82 |
|
83 |
+
|
84 |
+
# 获取原始请求头
|
85 |
+
headers = dict(request.headers)
|
86 |
+
# 移除可能导致问题的头
|
87 |
+
headers.pop("host", None)
|
88 |
+
headers.pop("content-length", None)
|
89 |
+
headers.pop("cookie", None)
|
90 |
+
headers.pop("x-forwarded-for", None)
|
91 |
+
headers.pop("x-forwarded-proto", None)
|
92 |
+
headers.pop("x-forwarded-port", None)
|
93 |
+
headers.pop("x-amzn-trace-id", None)
|
94 |
+
headers.pop("x-request-id", None)
|
95 |
+
headers.pop("x-ip-token", None)
|
96 |
+
headers.pop("x-direct-url", None)
|
97 |
+
print(f"{headers}")
|
98 |
# 构建请求参数
|
99 |
request_kwargs = {
|
100 |
"url": target_url,
|
101 |
+
"headers": headers,
|
|
|
|
|
102 |
"params": params,
|
103 |
"stream": stream_request # 设置stream参数
|
104 |
}
|