Python flask请求加载页面
创建从我的服务器加载页面的脚本(使用服务器IP等)-一切正常,但如果我想单击我登录到404错误页面的任何链接,因为链接是-类似这样的东西: …37.139.17.81:5000/html/privacy-check.php 我的代码: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
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