如何停止我的方法在python中运行两次?

问题描述 投票:0回答:1

代码。

import requests
from time import strftime, sleep

a = 20200422
b = 93

def getData(a,b):
    r = requests.get(
        f"https://www.examplesite.com/docs/doc-{str(a)}-testing-str{b}.pdf")
    if r.status_code == 200:
        with open(f"{b}.pdf", 'wb') as f:
            f.write(r.content)
            print(f"File Saved As {b}.pdf")
            retVal = True
            return retVal  
    else:
        print("[!] File Not Found")
        retVal = False
        return retVal

flag = True
i = 0

while flag:
    i += 1
    if(i == 1):
        retVal = True
    else:
        retVal = getData(a,b)
    if(retVal):
        sleep(2)
        a += 1
        b += 1
        getData(a,b)
    else:
        sleep(10)
        getData(a,b)

这个输出是

File Saved As 94.pdf
File Saved As 94.pdf
File Saved As 95.pdf
File Saved As 95.pdf
[!] File Not Found
[!] File Not Found

如何让网站上没有新文件时不下载?

python
1个回答
0
投票

当没有找到文件时,标志的值仍然是True。所以,解决方法是:当文件未找到时,将标志值设置为false,这样getData()函数就不会再被调用。

def getData(a,b):
    r = requests.get(
        f"https://www.examplesite.com/docs/doc-{str(a)}-testing-str{b}.pdf")
    if r.status_code == 200:
        with open(f"{b}.pdf", 'wb') as f:
            f.write(r.content)
            print(f"File Saved As {b}.pdf")
            retVal = True
            return retVal  
    else:
        print("[!] File Not Found")
        retVal = False
        flag= = False
        return retVal

`

© www.soinside.com 2019 - 2024. All rights reserved.