我正在编写一个网页爬虫来发现链接和处理页面信息。
由于这可能是一个没有结束的过程,因此在构建进度条时我不知道有多少元素已经完成,例如5个链接已完成/谁知道我们何时完成。
但是我知道我访问了多少链接和检测到了多少链接。
所以是已访问链接数/检测到的链接数。
我想要做的是使用类似click或其他api来制作进度条。
进度条的长度可以改变,即我可以更新检测到的进度条...就像加载条,用户已经完成90%,突然降到10%。噢,糟糕了lol'
查看click api时,似乎有两种使用它们进度条的方法。
由于这可能是一个没有结束的过程,因此在构建进度条时我不知道有多少元素已经完成,例如5个链接已完成/谁知道我们何时完成。
但是我知道我访问了多少链接和检测到了多少链接。
所以是已访问链接数/检测到的链接数。
我想要做的是使用类似click或其他api来制作进度条。
进度条的长度可以改变,即我可以更新检测到的进度条...就像加载条,用户已经完成90%,突然降到10%。噢,糟糕了lol'
查看click api时,似乎有两种使用它们进度条的方法。
with click.progressbar(all_the_users_to_process) as bar:
for user in bar:
modify_the_user(user)
或者
with click.progressbar(length=total_size,
label='Unzipping archive') as bar:
for archive in zip_file:
archive.extract()
bar.update(archive.size)
我能用 click 进度条实现上面所描述的功能吗?
如果不能,我需要什么来制作一个进度条,其中完成值会改变...90% -> 10% -> 20%。
谢谢!
编辑:更多细节
我有一个对象列表,称为 LinkElements。这些元素具有 visited 布尔值。
我想可能可以更新迭代器:
with click.progressbar(like_elements_list) as link_elements:
for link in link_elements:
... do stuff with link ....
link_elements.update(like_elements_list)
这个想法似乎并不奏效……或者我没有理解它。