如何找到请求的当前状态?

mjebay7

如何查看此请求的当前进度?文件未完成之前未显示任何内容,如果此请求仍处于活动状态,我想设置某种指示器。

import requests

with open('file.txt', 'r') as f:
    urls = f.readlines()

datalist=[]
for url in urls:
    data = requests.get(url)
    datalist.append(data.text)

with open('file_complete.txt', 'w') as f:
    for item in datalist:
        f.write("%s\n" % item)

您可以在request.gets(url)之前和datalist.append(data.text)之后添加print()语句。至少您可以通过URL跟踪进度。

for url in urls:
    print("Getting " + url)
    data = requests.get(url)
    datalist.append(data.text)
    print(url + " successfully downloaded")

但是,仅在下载所有URL后,您的代码才会写入文件如果程序在任何时候失败,file_complete.txt将不会被创建。因此,我建议任何URL下载成功后就写入文件。

import requests

with open('file.txt', 'r') as f:
    urls = f.readlines()

# datalist=[]  // No longer needed
for url in urls:
    data = requests.get(url)

    with open('file_complete.txt', 'a+') as f:   #change to mode "a+" to append
        f.write(data.text + "\n")

可以进行的另一项改进-您的代码假定所有URL有效。我们可以使用一个try-except块来捕获错误。

import requests

with open('file.txt', 'r') as f:
    urls = f.readlines()

# datalist=[]  // No longer needed
for url in urls:
    try:
        data = requests.get(url)
    except:
        printf(url + " failed")
        continue   #moves on to the next url as nothing to write to file

    with open('file_complete.txt', 'a+') as f:   #change to mode "a+" to append
        f.write(data.text + "\n")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章