2016-03-26 13 views
-3

Python'da web'de kazıma yapıyorum ve garip bir hatayla karşılaşıyorum. Ben açıp aşağıdaki hatayı alıyorum bir URL kullanarak bir html dosyası okumaya çalışın Bazen zaman: Bu hatayı üretiyor'IOError: [Errno 2] Web sitesinde böyle bir dosya veya dizin yok - Python

'IOError: [Errno 2] No such file or directory' 

kodu buradadır: Terminal bu kod bloğunda son satırı sevmez .

for game in games: 
      url = game 
      page = urllib.urlopen(url).read() 

liste games kesinlikle var url'lerin listesidir. Bu games ben çıktısını zaman neye benzediği: Bu hatayı alıyorum neden

['nba.com/games/20160323/ATLWAS/gameinfo.html', 
'nba.com/games/20160323/MILCLE/gameinfo.html', 
'nba.com/games/20160323/TORBOS/gameinfo.html', 
'nba.com/games/20160323/ORLDET/gameinfo.html', 
'nba.com/games/20160323/NYKCHI/gameinfo.html', 
'nba.com/games/20160323/UTAHOU/gameinfo.html', 
'nba.com/games/20160323/SACMIN/gameinfo.html', 
'nba.com/games/20160323/MIASAS/gameinfo.html', 
'nba.com/games/20160323/PHIDEN/gameinfo.html', 
'nba.com/games/20160323/LALPHX/gameinfo.html', 
'nba.com/games/20160323/DALPOR/gameinfo.html', 
'nba.com/games/20160323/LACGSW/gameinfo.html'] 

bilen var mı? Aslında bu hatayı bir kez daha anladım ve her ne kadar bu olayda çözdüysem de, neden işlediğimi anlamadım, bu yüzden topluma sormak istedim. Önceden, games kurulumunu tamamladım, böylece tam URL’ye sahip olmak yerine, bunun bir parçası vardı. Örneğin, games numaralı telefondaki ilk eleman /games/20160323/ATLWAS/gameinfo.html idi. Sonra yukarıda gösterilen for döngüsü içinde, url = game yerine, nba.com+url yazdım. Yukarıda özetlenen değişikliklerle koştuğumda, beklendiği gibi koştu. Herhangi bir yardım mutluluk duyacaktır.

+0

(eğer .request eklemek zorunda Python 3İçin)

for game in games: url = "http://" + game page = urllib.urlopen(url).read() 

+1

Ayrıca, "nba.com" +/games/20160323/ATLWAS/gameinfo.html' da hiç çalışmadım –

cevap

0

Python 2: Eğer url aynı değildir görebilirsiniz sitesine giderseniz

page = urllib.request.urlopen(url).read() 
+0

Dizgiye bir dize dökmeniz gerektiğini düşünmüyorum. – Goyo

+0

@goyo Düzenlendi :) –

+0

Eğer 'oyunlar' içindeki bağlantıları ziyaret ederseniz, tarayıcı http: // www' ekler. Belki OP sadece http: // ' – Alessiox

İlgili konular