from http.server import BaseHTTPRequestHandler, HTTPServer
import requests
# 代理服务器的地址和端口
proxy_host = 'localhost'
proxy_port = 8000
class ProxyHandler(BaseHTTPRequestHandler):
def do_GET(self):
try:
# 构造代理请求URL
url = self.path
if self.headers.get('Host'):
url = 'http://' + self.headers['Host'] + url
# 发起代理请求
response = requests.get(url)
# 将代理响应返回给客户端
self.send_response(response.status_code) # 发送响应状态码给客户端
for key, value in response.headers.items():
self.send_header(key, value) # 发送响应头给客户端
self.end_headers() # 结束响应头
self.wfile.write(response.content) # 发送响应内容给客户端
except Exception as e:
print('Error:', e)
def run_proxy_server():
# 启动代理服务器
server_address = (proxy_host, proxy_port)
httpd = HTTPServer(server_address, ProxyHandler)
print('Proxy server is running at {}:{}'.format(proxy_host, proxy_port))
httpd.serve_forever() # 运行代理服务器,接收和处理客户端请求
if __name__ == '__main__':
run_proxy_server()
如何使用python搭建一个自己的HTTP代理服务端
要使用Python搭建一个简单的HTTP代理客户端,我们可以使用http.server模块来创建一个简单的HTTP服务器,并在其中实现代理功能。以下是一个示例代码:
来不及解释了,先上代码