url = "http://xxx.xxx.net/{}/{}/{}{}{}.jpg"
for a in range(2015, 2019):
for b in range(1, 13):
for c in range(1, 100):
for d in range(ord("a"), ord("z") + 1):
for e in range(1, 100):
new_url = url.format(str(a), str(b), str(c).zfill(2), chr(d), str(d).zfill(2))
print(new_url)
1
ClutchBear 2018-12-07 12:55:51 +08:00
itertools 库有个专门算这种笛卡尔积的方法
你可以搜索试试 |
2
loryyang 2018-12-07 12:57:53 +08:00
你是实时跑吗?用 yield 感觉就可以了。如果一次性的,那慢点就慢点好了
|
3
ClutchBear 2018-12-07 12:59:31 +08:00
|
4
maichael 2018-12-07 12:59:44 +08:00
优化要结合你实际的需求,循环本身没有什么优化空间。
|
5
zhanglintc 2018-12-07 13:35:38 +08:00
@ClutchBear #3 这个库除了代码美观了以外, 在效率上有做什么优化吗?
|
6
ClutchBear 2018-12-07 13:38:46 +08:00
@zhanglintc #5 最基本的循环有啥优化的.
爬虫最根本在于网络 io. |
7
kljsandjb 2018-12-07 17:20:38 +08:00 via iPhone
减少数据相关什么的,循环展开等等,具体情况具体分析
|
8
bidongliang 2018-12-07 20:50:26 +08:00 via Android
单就这个问题来说最内部的 format 有很多重复计算,把对变量 a 的处理放到第一个循环里,b, c, d 等类似,尽量往外提。
|