如何让这个简单的Flask网站返回robots.txt工作?

时间:2018-03-31 19:37:41

标签: flask

我想要一个简单的小Flask网站,返回robots.txt。这就是我到目前为止所拥有的:

from flask import Flask
app = Flask(__name__)
app.run(host = "0.0.0.0", port = 80)

@app.route("/robots.txt")
def robots_dot_txt():
    return "User-agent: *\nDisallow: /"

当我尝试访问它时,我得到了404:

213.152.161.130 - -[31/Mar/2018 21:35:01] "GET /robots.txt HTTP/1.1" 404 -

2 个答案:

答案 0 :(得分:4)

最好从静态和使用Web服务器提供静态资产,但是对于您的问题,您必须在定义路由后启动“服务器”... 所以如果你在文件的末尾移动你的“run()”,那你应该很好。

并且通常建议将其包含在if 名称

from flask import Flask
app = Flask(__name__)

@app.route("/robots.txt")
def robots_dot_txt():
    return "User-agent: *\nDisallow: /"

if __name__ == '__main__':
    app.run(host = "0.0.0.0", port = 80)

答案 1 :(得分:0)

只需将from selenium import webdriver browser = webdriver.Chrome() browser.get("URL OF THE WEB PAGE TO FETCH") allelements = browser.find_elements_by_class_name('disclosure button closed') allelements[len(allelements)-1].click() 文件放在项目目录中的静态文件夹中即可。然后在创建Flask应用实例时设置robots.txt

static_url_path

app --__init__.py --static --robots.txt --templates

app.__init__.py

或者您可以使用from flask import Flask app = Flask(__name__, static_url_path='') if __name__ == "__main__": app.run() 代替更改send_from_directory的默认值:

static_url_path

app.__init__.py