Python flask请求加载页面

Python flask请求加载页面,python,flask,python-requests,anonymous,Python,Flask,Python Requests,Anonymous,创建从我的服务器加载页面的脚本(使用服务器IP等)-一切正常,但如果我想单击我登录到404错误页面的任何链接,因为链接是-类似这样的东西: …37.139.17.81:5000/html/privacy-check.php 我的代码: from flask import Flask import requests application = Flask(__name__) @application.route("/") def hello(): result = reques

创建从我的服务器加载页面的脚本(使用服务器IP等)-一切正常,但如果我想单击我登录到404错误页面的任何链接,因为链接是-类似这样的东西:

…37.139.17.81:5000/html/privacy-check.php

我的代码

from flask import Flask
import requests

application = Flask(__name__)

@application.route("/")
def hello():
        result = requests.get("http://ipinfo.info/index.php")
        return result.content

if __name__ == "__main__":
    application.run(host='0.0.0.0')
下面是一个活生生的例子:

如何解析单击URL并获取此链接内容

您的“脚本”是在本地服务器上运行的flask应用程序

当您单击从不同站点加载的页面中的链接时,您的flask应用程序会合理地认为它是flask应用程序中页面的链接,因此会尝试在本地应用程序中加载该页面。
flask应用程序在本地服务器上查找链接,可能是因为您加载的页面上的链接是相对链接

要解析链接,可以使用

我必须问你为什么要将php页面加载到flask应用程序中?

对于
href=“/html/privacy check.php”
你应该这样做

@application.route("/html/privacy-check.php")
def hello():
        result = requests.get("http://ipinfo.info/index.php")
        return result.content

由于它在您的服务器上找不到任何与
/html/privacy check.php
匹配的url,因此抛出了404错误。

您基本上是想让您的页面充当远程页面的代理。为了完全做到这一点,您需要处理远程页面中的所有链接

例如,如果有一个像
/something/something
这样的链接,flask将自动尝试将其与本地url(
http://yourserver.com/something/something
)。鉴于您只定义了一条路由(“/”),应用程序将确定任何其他页面都不存在,并将返回404

要正确处理此问题,您可以尝试以下操作:

import urlparse

@application.route("/")
@application.route("/<url:path>")
def hello(url=None):
    baseurl = "http://ipinfo.info/"
    if not url:
        result = requests.get(urlparse.urljoin(baseurl,"index.php"))
        return result.content
    else:
        result = requests.get(urlparse.urljoin(baseurl,url))
        return result.content
导入URL解析 @应用程序。路径(“/”) @应用程序。路径(“/”) def hello(url=None): baseurl=”http://ipinfo.info/" 如果不是url: 结果=requests.get(urlparse.urljoin(baseurl,“index.php”)) 返回result.content 其他: 结果=requests.get(urlparse.urljoin(baseurl,url)) 返回result.content
警告:这种方法可能会在各种情况下出现问题(例如css和js加载),因此您可能需要在页面加载后检查结果。

我正在尝试从我的服务器(又名在线代理)创建小型匿名服务-禁止加载(在我的国家)页面。我想做一些类似的模拟-
import urlparse

@application.route("/")
@application.route("/<url:path>")
def hello(url=None):
    baseurl = "http://ipinfo.info/"
    if not url:
        result = requests.get(urlparse.urljoin(baseurl,"index.php"))
        return result.content
    else:
        result = requests.get(urlparse.urljoin(baseurl,url))
        return result.content