2011-11-27 82 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