2017-03-02 4 views
0
import urllib2 

    def download(url,user_agent = 'wswp',num_retries=2): 
     print 'downloading:',url 
     headers = {'User-Agent': 'Mozilla/5.0'} 
     request = urllib2.Request(url,headers=headers) 
     try: 
      html = urllib2.urlopen(request).read() 
     except urllib2.URLError as e: 
      print "download error:" 
      html = None 
      if num_retries>0: 
       if hasattr(e,'code') and 500<=e.code<600: 
        print "e.code = ",e.code 
        return download(url,num_retries-1) 
     return html 
    print download("http://www.huaru.cc/mobile/product/xsim.html") 

le résultat: C: \ Python27 \ python.exe E:/py2_7/untitled1/téléchargement secondClass_Agent: http://www.huaru.cc/mobile/product/xsim.htmlurllib2 python ne peut pas fonctionner sur certains site

Processus terminé avec le code de sortie 0

+2

Fonctionne sur ma machine. Après avoir réparé l'indentation. –

+0

Fonctionne sur ma machine non plus. Vérifiez votre indentation. – sangheestyle

+0

Salut, Vous voulez dire que vous pouvez télécharger tout le code de ce site? pouvez-vous coller votre résultat? merci. –

Répondre

0

En Python, l'indentation est la clé.

import urllib2 


def download(url,user_agent = 'wswp',num_retries=2): 
    print('downloading:', url) 
    headers = {'User-Agent': 'Mozilla/5.0'} 
    request = urllib2.Request(url, headers=headers) 
    try: 
     html = urllib2.urlopen(request).read() 
    except urllib2.URLError as e: 
     print("download error: {}".format(e)) 
     html = None 
     if num_retries > 0: 
      if hasattr(e, 'code') and 500 <= e.code < 600: 
       print("e.code = ", e.code) 
       return download(url, num_retries-1) 
    return html 

print download("http://www.huaru.cc/mobile/product/xsim.html") 

Et il montre comme ce qui suit:

('downloading:', 'http://www.huaru.cc/mobile/product/xsim.html') 
download error: HTTP Error 404: Not Found 
None 

Ceci est parce que la page Web est de retour 404.

Il est testé sur Python 2.7.10 et 3.6

Vérifier pep8: https://www.python.org/dev/peps/pep-0008/#id17

+0

Je connais le retrait, mais je ne sais pas comment le corriger sur ce web. Je suis désolé pour cela. J'ai toujours une erreur avec le code que vous collez. pouvez-vous coller votre résultat avec exécuter ce code. Merci beaucoup. –

+0

@ Zhang.h Pas de soucis. Vous n'avez pas besoin de dire désolé. Au lieu de cela, essayez à nouveau. J'ai modifié mon code pour vous montrer quelle est l'erreur. Certainement, l'URL renvoie HTTP 404, ce qui signifie que non trouvé. J'ai trouvé que le site Web montre 404. – sangheestyle