2011-11-27 69 views
2

我想製作一個python腳本,可以下載字幕我如何從subscene.com遇見你的母親。 我是Python和編程新手。Python:將URL導入列表

我想將搜索結果放入列表中,然後打印出來,以便用戶可以選擇正確的URL。問題是我不知道如何從搜索結果中創建一個列表。有誰知道如何做到這一點?

這是我到目前爲止已經做出:

import urllib 

class Subtitle_downloader(object): 

    def __init__(self): 
     self.SearchCriteria = ['How.I.Met.Your.Mother'] 
     self.Episode = str(raw_input('Enter episode: ')) 
     self.Carateristics = str(raw_input('Enter caracteristics: ')) #'HDTV' for an example 
     self.SearchCriteria.append('S07E'+self.Episode) 
     self.SearchCriteria.append(self.Carateristics) 
     print self.SearchCriteria 

    def SubDL(self, SubUrl): 
     self.AllSubs = urllib.urlopen(SubUrl).readlines() 
     for item in self.AllSubs: 
      if self.SearchCriteria[0] and self.SearchCriteria[1] in item: 
      #Create a list 

t=Subtitle_downloader() 
t.SubDL('http://subscene.com/How-I-Met-Your-Mother-Seventh-Season/subtitles-90698.aspx') 
+0

檢查邏輯...你真的想如果self.SearchCrite ria [0]和self.SearchCriteria [1]中的項?這將檢查SearchCriteria [0]是否爲True,而不是它是否在項目中。 – MikeRand

回答

0

您可以使用列表理解:

def SubDL(self, SubUrl): 

    l = [item for item in urllib.urlopen(SubUrl).readlines() 
     if self.SearchCriteria[0] in item and self.SearchCriteria[1] in item] 
    for item in l: 
     print('An item: {}'.format(item)) 
0

如果你不想使用列表理解(這可能看起來有點複雜),你也可以簡單地創建一個空列表,並附加項目:

def SubDL(self, SubUrl): 
    subList = [] 
    self.AllSubs = urllib.urlopen(SubUrl).readlines() 
    for item in self.AllSubs: 
     if self.SearchCriteria[0] and self.SearchCriteria[1] in item: 
      subList.append(item) 
    return subList 
+0

謝謝你都答案是非常有幫助的。 但我正面臨一個新問題: 是否有可能讓python以與在subscene上顯示的方式相同的方式打印超鏈接? – user1067911

+0

請參閱編輯我的回覆。不管你想使用字符串格式,格式。 – MikeRand