Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 15, 2015 19:05:17

deniska
Зарегистрирован: 2015-04-13
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите c for, print(спасибо тому кто поможет)

for names in g.doc.select("//span[@class='usr']"):

nameList = []
name = str(names.text()).partition(" ")
nameList.append(name[0])

save.write(nameList[0])

for elem in g.doc.select("//span[@class='act']/a"):
#name = str(g.doc.select("span[@class='usr']").text()).partition(" ")
if g.doc.select("//span[@class='usr']").exists():
save.write("m.ok.ru" + elem.attr("href") + "\n")

В общем как видно из кода тут 2 for нужно чтобы было так nameList + “m.ok.ru” + elem.attr(“href”) + “\n” и они шли синхронно, а получается что они записываються так
Аня: URL, Аня: URL, Аня: URL а нужно так Аня: URL, Маша: URL, Катя: URL

Офлайн

#2 Апрель 15, 2015 19:33:27

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Помогите c for, print(спасибо тому кто поможет)

что-то не очень понятно
нужен пример получше чем

deniska
Аня: URL, Аня: URL, Аня: URL а нужно так Аня: URL, Маша: URL, Катя: URL
давайте что записало и что должно записать



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Апрель 15, 2015 19:34:01

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

Помогите c for, print(спасибо тому кто поможет)

Так у тебя сначала выполниться первый цикл, а только потом второй. Пиши сначала все в отдельный список вида [, , … , ]. А вообще я так понял ты парсишь список пользователей : получить имя и ссылку на профиль можно в одном цикле.

Офлайн

#4 Апрель 15, 2015 19:37:18

deniska
Зарегистрирован: 2015-04-13
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите c for, print(спасибо тому кто поможет)


[co

ayb
Так у тебя сначала выполниться первый цикл, а только потом второй. Пиши сначала все в отдельный список вида . А вообще я так понял ты парсишь список пользователей : получить имя и ссылку на профиль можно в одном цикле.
]

вот только как ?

     for elem in g.doc.select("//span[@class='act']/a"):
#name = str(g.doc.select("span[@class='usr']").text()).partition(" ")
if g.doc.select("//span[@class='usr']").exists():
save.write("m.ok.ru" + elem.attr("href") + "\n")

если делаю в этом цикле то в общем имя повторяется

Офлайн

#5 Апрель 15, 2015 19:37:46

deniska
Зарегистрирован: 2015-04-13
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите c for, print(спасибо тому кто поможет)

terabayt
что-то не очень понятнонужен пример получше чем

ну ты видишь что имя повторяется …

Офлайн

#6 Апрель 15, 2015 19:43:19

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Помогите c for, print(спасибо тому кто поможет)

deniska
ну ты видишь что имя повторяется
а я непонятлив!
и если вы хотите получить нормальный ответ
задавайте норм вопрос с хорошими примерами
а сидеть и думать чтоже он хочет мне впадло!

если писать код не умеем нужно уметь вопросы задавать
иначе никак…



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Апрель 15, 2015 19:43:36)

Офлайн

#7 Апрель 15, 2015 19:45:21

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Помогите c for, print(спасибо тому кто поможет)

Я так понимаю к АНЕ URL приписывается постоянно новый? или с этим проблема тоже?
Если вот так будет работать?

for names in g.doc.select("//span[@class='usr']"):
                      nameList = []
                      name = str(names.text()).partition(" ")
                      nameList.append(name[0])
                      save.write(nameList[-1])
            for elem in g.doc.select("//span[@class='act']/a"):
                   #name = str(g.doc.select("span[@class='usr']").text()).partition(" ")
                   if g.doc.select("//span[@class='usr']").exists():
                      save.write("m.ok.ru" + elem.attr("href") + "\n")

Офлайн

#8 Апрель 15, 2015 20:03:00

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

Помогите c for, print(спасибо тому кто поможет)

У тебя 2 цикла. Результатом работы первого должен быть список имен, а результатом второго список ссылок.

names = ['Аня', 'Катя', 'Маша']
urls = ['Ссылка на Аню', 'Ссылка на Катю', 'Ссылка на Машу']

for name in names:
print('%s : %s' % (name, urls[names.index(name)]))

Но как я говорил выше, тебе не нужно 2 цикла. Это все можно сделать в одном цикле.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version