You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中for循环遍历range(1,10)却重复输出page=9的问题排查

为什么我的Python循环只重复输出最后一页的URL?

看起来你遇到的问题是循环本该输出从page=1到page=9的不同链接,但实际却重复输出page=9的版本,甚至重复了30次。咱们来拆解问题:

问题根源:缩进错误 + 变量作用域

你给出的代码里,print(url3)如果是正确缩进在for i循环内部,那应该依次输出page=1到page=9的链接。但你实际看到的重复输出最后一页的情况,大概率是下面两种错误之一:

  • print(url3)没有缩进在循环体内:
    当print语句在for i循环外面时,循环会先执行9次,把url3更新为最后一次循环(i=9)的值。如果你还额外把print放在了另一个独立循环(比如for _ in range(30): print(url3))里,就会重复打印30次相同的page=9链接——这完全符合你描述的现象。
  • 循环变量被意外修改:
    这种情况概率很低,除非你在循环内部的其他代码里(比如Request相关操作)不小心修改了i的值,但从你给出的代码来看没有这种情况。

修复方案

确保print(url3)语句正确缩进在for i循环的内部,这样每次循环都会打印当前i对应的URL。另外,把固定的基础URL和动漫名称格式化操作移到循环外面,可以优化代码(没必要每次循环都重复执行这些固定操作):

from urllib.request import Request  # 别忘了导入Request模块!

print("Search For The News")
AnimeName = input('>')
url_base = 'https://wall.alphacoders.com/search.php?search='
# 提前处理动漫名称的空格替换,避免重复计算
formatted_anime_name = AnimeName.replace(" ", "+")

for i in range(1, 10):
    url3 = f"{url_base}{formatted_anime_name}&page={i}"
    useragent = Request(url3, headers={'User-Agent':'Mozilla/5.0'})
    print(url3)

验证效果

运行修改后的代码,输入my hero academia,应该会依次输出:

https://wall.alphacoders.com/search.php?search=my+hero+academia&page=1
https://wall.alphacoders.com/search.php?search=my+hero+academia&page=2
...
https://wall.alphacoders.com/search.php?search=my+hero+academia&page=9

这样就能得到你预期的从page=1到page=9的链接了。

内容的提问来源于stack exchange,提问作者Bharath S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 17:49:08