0

我正在编写一个从 mangareader 下载图像的脚本,我一直在尝试用 Python 来做,因为这是我彻底学习的第一门语言,我现在真的很喜欢。问题是我所做的循环的输出没有按照我期望的方式工作。

soup = soup.findAll('option') # We select all the option tags
for l in soup: # And we start with a loop
    l = l.get_text()
    print l
    url = url + str(l)
    print url

我期待的输出是:

1
http://www.mangareader.net/witch-shop/1/1
2
http://www.mangareader.net/witch-shop/1/2
3
http://www.mangareader.net/witch-shop/1/3
4
http://www.mangareader.net/witch-shop/1/4
5
http://www.mangareader.net/witch-shop/1/5
[...]

它显示的是:

1
http://www.mangareader.net/witch-shop/1/1
2
http://www.mangareader.net/witch-shop/1/12
3
http://www.mangareader.net/witch-shop/1/123
4
http://www.mangareader.net/witch-shop/1/1234
5
http://www.mangareader.net/witch-shop/1/12345
[...]

我不知道为什么。

我感谢您的帮助。

4

3 回答 3

3

好吧,在你做的每次迭代中

url = url + str(l)

它将数字附加到url,并且它永远不会重置。

要获得所需的输出,请尝试

for l in soup:
    l = l.get_text()
    print l
    print url + str(l)

这样您就不会更改url变量的内容。

于 2012-06-07T20:04:05.320 回答
2

这是因为您在没有初始化的情况下附加lurl每次迭代url

你应该做:

#....
url2 = url + str(l)
print url2
#....
于 2012-06-07T20:03:38.707 回答
1

当您执行以下操作时

 url = url + str(l)

您实际上是附加到字符串,而不是向其添加 1。

于 2012-06-07T20:02:36.393 回答