我想要一个简单的小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 -
答案 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