使用python3和flask从另一个服务器获取URL

时间:2019-04-07 09:13:56

标签: python flask

使用此stackoverflow附加(Load an HTML page into an HTML frame using Flask)作为指南,并且是Flask的新手,我想知道如何使另一个URL(例如---> https://www.afl.com.au/)显示在其中。我自己的使用Flask和Python3的应用程序中的框架(或iframe),并且是否在我自己的PC上本地运行(即在本地主机上)

我觉得我必须使用Apache或CURL或...?并调用它来满足请求?
如果是这样,那么如何将内容从另一个网站定向到我的应用程序中的Frame(或iFrame)?

好的-对于不确定的事情,我表示歉意,但是由于缺乏答复,我认为我一定犯了一些主要的罪过,我不知道...我一直在进行挖掘/研究(请参阅下文)...我可以更接近目标,但是重新使用“ embed”的第二个URL(compjour.org)的内容在实践中并不总是有效,因此我想知道是否有人可以阐明为什么?< / p>

进一步的工作表明我可以完成...这是我的示例代码-它适用于URL'http://www.bom.gov.au/wa/observations/index.shtml',但对于YouTube来说却不是第二个。 (请注意,frameset2.html文件与app.py代码位于同一目录中。),frameset2代码如下:

<html><iframe src='{{src}}' width="853" height="480" frameborder="0"  allowfullscreen></iframe></html>

我也碰到了这个附录http://www.compjour.org/lessons/flask-single-page/simple-youtube-viewing-flask-app/ 但是他们所说的关于嵌入的说法似乎不再起作用(无论如何并非每次都如此)。

请问有什么想法吗?

app.py

from flask import Flask, render_template, request
import os

app = Flask(__name__)
# page = 'index.html'
# page = 'http://www.bom.gov.au/wa/observations/index.shtml'
page = 'https://www.youtube.com/watch?' + 'v=Ov7-FC0KHQA&feature=youtu.be'

os.chdir(r"C:\Users\blah blah ") #not the real dir of course
                                 # all code is in same dir

@app.route('/')
def home():
    return render_template('frameset2.html', src=page)


app.run()

frameset2

1 个答案:

答案 0 :(得分:0)

Youtube URL无法正常工作的原因是,他们明确禁用了在框架中显示Youtube的功能。 这是通过发送带有YouTube响应的HTTP标头x-frame-options: SAMEORIGIN来完成的。除非您安装某种浏览器扩展,否则无法避免这种情况(另一方面,BOM似乎不在乎是否在框架中显示其信息)。

您可以通过在浏览器中检查控制台来验证这一点,以查看页面加载期间是否显示任何错误。