python-3.x
  • search
  • computer-science
  • 2016-08-19 5 views 1 likes 
    1
    def get_page(url): 
        try: 
         import urllib 
         return urllib.urlopen(url).read() 
        except: 
         return "error" 
    
    
    def get_next_target(page): 
        start_link = page.find('<a href=') 
    
        if start_link == -1: 
         return None, 0 
        else: 
         start_quote = page.find('"', start_link) 
         end_quote = page.find('"', start_quote + 1) 
         url = page[start_quote + 1:end_quote] 
         return url, end_quote 
    
    
    def print_all_links(page): 
        while True: 
         url, endpos = get_next_target(page) 
         if url: 
          print(url) 
          page = page[endpos:] 
         else: 
          break 
    
    print_all_links(get_page('http://xkcd.com/353')) 
    

    私はすべてのクイズに合格したが、デフget_pageは、ビデオに表示されませんでしたが、コードが中に与えられた(CSコースにUdacityイントロ)http://xkcd.com/353からのリンクを返しませんビデオの下の長い文章。 しかし、最後の行print_all_links( 'string')に文字列として入力されている場合は、リンクを表示します。Pythonプログラムは

    答えて

    1

    Python 3ではなく、Python 2で以前の作品を投稿しました。私はPython 3の要件を反映するために、get_page(url)でimportとreturnを変更し、.decode( 'utf- ')これはTypeErrorを修正しました。' str 'ではなく、バイトのようなオブジェクトが必要です

    def get_page(url): 
    try: 
        import urllib.request 
        return urllib.request.urlopen(url).read().decode('utf-8') 
    except: 
        return "error" 
    
    関連する問題