Python:将网址导入列表

2 投票
2 回答
1930 浏览
提问于 2025-04-17 07:09

我正在尝试写一个Python脚本,可以从subscene.com下载《老爸老妈的浪漫史》的字幕。对我来说,Python和编程都是新鲜事。

我希望搜索结果能放在一个列表里,然后再打印出来,这样用户就可以选择正确的网址。问题是我不知道怎么从搜索结果中创建一个列表。有没有人知道该怎么做?

这是我到目前为止做的:

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')

2 个回答

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

撰写回答