我试图在Flask
中创建一个非常简单的代理服务器。我是一个初学者,试图从这里学到基本知识。理想情况下,我希望这里的输出看起来像是直接访问站点。我不确定这是否是不可能做到的
我发现如下code:
from flask import Flask
from requests import get
app = Flask(__name__)
SITE_NAME = 'http://google.com'
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def proxy(path):
return get(f'{SITE_NAME}{path}').content
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
这几乎正是我想要的。输出内容的示例(例如http://google.com)
有没有办法渲染出javascript
和图像?这不可能吗
在呈现请求URL时,确实应该添加斜杠:
f'{SITE_NAME}/{path}'
。添加一个print
语句,您会注意到您正在请求类似http://google.comtextinputassistant/tia.png
的东西此外,代理也没有那么简单。您应该克隆客户端发送的所有请求头,并将其发送到google.com,并在处理响应时执行反反转。检查来自
https://www.google.com/textinputassistant/tia.png
和https://localhost:5000/textinputassistant/tia.png
的响应有多不同,检查来自这两个URL的请求和响应头,您将注意到有多少信息丢失相关问题 更多 >
编程相关推荐