我正在编写一个脚本来从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
[...]
我无法弄清楚原因。
感谢您的帮助。
答案 0 :(得分:3)
好吧,在每次迭代中你做
url = url + str(l)
将数字附加到url
,并且永远不会重置。
要获得所需的输出,请尝试
for l in soup:
l = l.get_text()
print l
print url + str(l)
这样您就不会更改url
变量的内容。
答案 1 :(得分:2)
这是因为您在每次迭代时都将l
附加到url
而未初始化url
。
你应该这样做:
#....
url2 = url + str(l)
print url2
#....
答案 2 :(得分:1)
当您执行以下操作时
url = url + str(l)
您实际上是附加到字符串,而不是向其添加1。