2012-06-07 104 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

謝謝你的時間和幫助! –