2015-04-30 3 views
0

Какие изменения должны быть внесены в этот скрипт, чтобы заставить его распечатать желаемый результат?Исправить скрипт с ошибкой python Для циклов

def dummy(url): 
     req = urllib.request.urlopen(url).read().decode('utf-8').replace("\n","") 
     getTag = re.search('<div class="eps_lst_tbn">(.*?)<div class="clear"></div>', req).group(1) 
     judul = re.findall('<div class="node">\r\t\t\t<div>(.*?)</div>',getTag) 
     link = re.findall('<a href="(.*?)">',getTag) 
     episode = re.findall('</a>\r\t\t\t<div>(.*?)</div>',getTag) 
     l=[] 
     num = 1 
     for i in link: 
     x = '<br/>(%s) %s - %s <a target="_blank">%s</a>' %(num,judul,episode,i) 
     l.append(x) 
     num = num+1 
     string = ''.join(l[0:3]) 
     return string 

Текущие результаты:

(1) ['a', 'b', 'c'] - ['1', '2', '3'] <u>http://url.com/a/1/</u> 
(2) ['a', 'b', 'c'] - ['1', '2', '3'] <u>http://url.com/b/2/</u> 
(3) ['a', 'b', 'c'] - ['1', '2', '3'] <u>http://url.com/c/3/</u> 

Желаемые результаты:

(1) a - 1 <u>http://url.com/a/1/</u> 
(2) b - 2 <u>http://url.com/b/2/</u> 
(3) c - 3 <u>http://url.com/c/3/</u> 

ответ

1

judul и episode не являются строками, то они представляют собой списки строк. Если вы хотите показать одну строку для каждого из них, вы должны использовать индексирование.

for idx, href in enumerate(link): 
    x = '<br/>(%s) %s - %s <a target="_blank">%s</a>' %(idx+1,judul[idx],episode[idx],href) 
    l.append(x) 
+0

это работа, спасибо :) – Updownge

Смежные вопросы