urls
是一個列表,因此有一個索引。爲了訪問列表中的值,您必須通過其索引來完成。讓我證明:
>>> urls = ['hello', 'world']
>>> urls[0]
'hello'
>>> urls[1]
'world'
>>> len(urls)
2
>>>
請注意該指數是基於0
(這意味着第一個元素是通過0
訪問,然後1
是第二個元素)。這就是爲什麼while
語句中的條件爲while i < len(url)
,因爲i
正在訪問索引,並且由於索引從0
開始,而不是1
,所以您只能繼續操作直到1
,這是列表中的第二個值。
讓我演示一下,如果你去出界放置2
索引值會發生什麼:
>>> urls[2]
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
urls[2]
IndexError: list index out of range
>>>
正如你所看到的,你會得到一個IndexError
。
但是,通過URL的list
循環更好的方法,你的情況,使用for
循環:
>>> for url in urls:
print url
hello
world
>>>
魔法門:
# This look will go through all the values inside your list, and the current value will be called url
for url in urls: # Here url is the value inside the list
htmlfile = urllib.urlopen(url)
htmltext = htmlfile.read()
print htmltext
使用for
循環演示我還建議您使用python-requests
,它非常適合通過常見HTTP協議(如GET
和POST
)發送請求。它會爲你節省很多hassle in the future。
相關:http://stackoverflow.com/questions/19359093/using-while-loops-to-count-elements-in-a-list –
這不是真的很習慣Python。 –
@DanielRoseman大多數答案都說得很清楚:P使用'for'循環! :D –