烧瓶循环问题

时间:2019-06-19 13:38:44

标签: python python-3.x flask python-requests

这是我的烧瓶dir.py

import requests

def dir(domain):
    paths = ['/test','/html','/go','/.git']

    for path in paths:
        path = path.strip()
        url = 'http://'+domain+path

        result = requests.get(url)
        if result.status_code == 200:
            return url

dir("localhost")

这是run.py

@app.route('/brute', methods=["GET", "POST"])
def brute():
    erroro = ""
    if request.method == "POST":
        domain = None
        try:
            if request.form["domain"] == "":
                erroro += ("<p>{!r} Input Empty</p>").format(request.form["domain"])
            else:
                domain = request.form["domain"]
        except:
            erroro += ("<p>{!r} Input Empty</p>").format(request.form["domain"])

        if domain is not None:
            brute_res = brute_admin(domain)
        return render_template("brute_result.html", brute_res = brute_res) 
    return render_template('brute.html').format(erroro=erroro)

现在的问题是我正在尝试在网页中打印网址列表,例如:

http://localhost/test

http://localhost/html

但是它只是打印带有路径的第一个url,我尝试了其他方法但没有运气。我现在能做什么。这个过程花了一些时间,结果直到完成后才显示,我可以在后台执行此操作,然后我可以下载URL列表,如果status_code == 200,则以我在dir.py中编码的URL列表进行验证,然后返回url。如果有其他方法可以完成此过程,请帮助我。

谢谢

1 个答案:

答案 0 :(得分:0)

第一次收到200条回复后,您将返回url

尝试这样的事情:

urls = []
for path in paths:
    path = path.strip()
    url = 'http://'+domain+path
    result = requests.get(url)
    if result.status_code == 200:
         urls.append(url)
return urls

收集要返回的所有网址,并在for循环外返回列表