2012-06-07 64 views
0

我正在研究一个脚本从mangareader下载图像,我一直试图用Python来完成,因为这是我已经学过的第一门语言,我真的很喜欢此时此刻。问题在于我所做的循环输出并不按照我期望的方式工作。意外的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 
[...] 

而且我想不通其所以然。

我感谢您的帮助。

回答

2

这是因为您在每次迭代时都会追加lurl而无需初始化url

你应该这样做:

#.... 
url2 = url + str(l) 
print url2 
#.... 
+0

非常感谢。你会做的伎俩! –

1

当你正在做以下

url = url + str(l) 

你实际上是附加到字符串,而不是加1到它。

+0

谢谢!我不知道。 –

+0

@LeandroPoblet欢迎来到计算器。它很高兴知道我们的帮助,但你真的不需要感谢每个人:P –

+0

@Flo我不介意:) –

3

好了,在每次迭代你做

url = url + str(l) 

其中追加数字来url,它从来没有复位。

,从而获得所需的输出,尽量

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

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

+0

谢谢你的时间和帮助! –