2013-10-17 49 views
0

使用urllib2,我試圖從HTML文件中保存歌詞。嗯.. 這是代碼:把這個短語放在列中

generate_url = 'http://azlyrics.com/lyrics/' + artist_split + '/' + title_split + '.html' 

     try: 
      response = urllib2.urlopen(generate_url) 
     except urllib2.HTTPError: 
      print "Lyrics doesn't exist. Please try again." 
      time.sleep(0.75) 
      UMM.lyrics_from_track() 

     read_lyrics = response.read() 

     #Parsing HTML file containing lyrics 
     parser = etree.HTMLParser() 
     tree = etree.parse(StringIO.StringIO(read_lyrics), parser) 
     lyrics = tree.xpath("//div[@style='margin-left:10px;margin-right:10px;']/text()") 

     print '' 
     print '\033[32m-----------------------------------------\033[0m' 

     for words in lyrics: 
      print str(words).strip() 

     print '\033[32m-----------------------------------------\033[0m' 

     print '' 
     save = raw_input("Do you want to save this lyrics in a txt file in current working directory? [Y/N] ") 
     if save == 'y' or save == 'Y': 
      f = open(artist + '_' + title + '.txt', 'w') 
      f.write(str(lyrics).strip()) 
      f.close() 
      print 'Return to main menu.' 
      time.sleep(0.75) 
      UMM.read_information() 
     elif save == 'n' or save == 'N': 
      print 'Return to main menu.' 
      time.sleep(0.75) 
      os.system('clear') 
      UMM.read_information() 
     else: 
      print 'Incorrect choice.' 
      time.sleep(0.75) 
      UMM.lyrics_from_track() 

,如果你想保存一個txt文件的歌詞輸出是這樣的:

[ '\ r \ n',「\ r \ NSO關閉,無論距離多遠',\ n \ n \\ \ \ \ \ \ \ \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \方式','\ n生活是我們的,我們 住我們的方式','\ n所有這些話我不只是說','\ n並沒有什麼 其他事情','\ n','\ nTrust我尋求和我發現你','\ n每天 爲我們提供了新的東西','\ n打開一個不同的視圖','\ n和 沒有別的事情','\ n','\ n不關心他們做什麼',\ n不關心他們知道什麼'\ n但是我知道'\ n','\ n無論距離多遠都關閉 ,\ n \\ \ \ \ \ \ \ \ \ \ \ \ \ n \ n \ n \ n \ n \ n \ n \ n \ n更加信任我們是誰' n \ n沒有其他事情','\ n', '\ n不關心他們做什麼','\ n不關心他們所知道的', '\ n但是我知道','\ n','\ n沒有打開過我自己這樣',\ n我們的生活是 ',我們按照自己的方式生活',「\ n所有這些話我不只是說', '\ n沒有別的事情','\ n','\ nTrust我尋求我在 中找到你','\ n每天爲我們提供新的東西','\ n打開一個不同的\ n並不關心他們說什麼','\ n不關心他們玩的遊戲',\ n \ n不關心他們做什麼' ',' \ n不管他們知道什麼','\ n我知道',\ n \ n \ n \ n \ n \ n \ n \ n因此無論距離多遠,\ n \ n無法再更多地從內心深處\ n \ n \ n信任我們是誰」, '\ n無沒有別的 事項\ r \ n', '\ r \ n']

如何把列的詩句?

回答

2

你想要的是替換:

f.write(str(lyrics).strip()) 

f.write("\n".join(lyrics).strip()) 
+0

正確!謝謝。 –

+1

不客氣。如果您對此感到滿意,請將答案標記爲正確。 – piokuc

+0

@Black_Ram記得在SO中表達感謝的最佳方式是upvoting/acceptting;) – jabaldonedo