from flask import Flask, request, jsonify from bs4 import BeautifulSoup import requests app = Flask(__name__) @app.route('/') def index(): return '

OK

' @app.route('/proxy') def proxy(): url = request.args.get('url') if not url: return jsonify({'error': 'URL parameter is missing'}), 400 try: headers = {key: value for (key, value) in request.headers if key != 'Host'} cookies = request.cookies method = request.method data = request.get_data() response = requests.request( method=method, url=url, headers=headers, cookies=cookies, data=data, allow_redirects=False ) if 'text/html' in response.headers.get('content-type', ''): soup = BeautifulSoup(response.content, 'html.parser') for tag in soup.find_all(href=True): tag['href'] = '/proxy?url=' + tag['href'] for tag in soup.find_all(src=True): tag['src'] = '/proxy?url=' + tag['src'] response.content = soup.encode() return response.content, response.status_code, response.headers.items() except requests.RequestException as e: return jsonify({'error': str(e)}), 500 if __name__ == '__main__': app.run(host="0.0.0.0", ssl_context='adhoc', port=7680) # Use 'adhoc' to enable HTTPS locally