Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 26.10.2022
Сообщений: 35

Циклом for получаю четыре urla как получить только первый

18.01.2023, 18:42. Показов 821. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здрасьте, помогите разобраться прохожусь циклом по странице получаю 4 разные ссылки, но мне нужна только первая ссылка, как переписать цикл?

Python
1
2
3
4
    for response in msg:
        p = re.compile(u'"(http://links.*?)"')
        for m in re.findall(p, str(response)):
            print(m)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.01.2023, 18:42
Ответы с готовыми решениями:

Postman. Получаю в ответе список, как заставить постман следующий запрос запустить циклом по каждому значению?
Postman. Получаю в ответе список, список сохраняю в переменные коллекции. Как заставить постман запустить циклом следующий запрос с...

Получить а в 7 степени за четыре операции, используя только умножение
Дано число а. Не пользуясь никакими другими арифметическими операциями, кроме умножения, получить а7 за четыре операции.

Дано вещественное число а. Пользуясь только операцией умножения, получить а^3 и а^10 за четыре операции
Дано вещественное число а. Пользуясь только операцией умножения, получить а^3 и а^10 за четыре операций. Добавлено через 12 часов 37...

18
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2023, 18:52
Цитата Сообщение от torwald Посмотреть сообщение
как переписать цикл?
Надо убрать цикл

Добавлено через 33 секунды
И findall заменить на search например
0
0 / 0 / 0
Регистрация: 26.10.2022
Сообщений: 35
18.01.2023, 19:05  [ТС]
Не совсем понимаю как это сделать
Python
1
2
3
4
   for response in msg:
        p = re.compile(u'"(http://links.*?)"')
        s = re.findall(p, str(response))
        print(s)
так все ссылки выводит в одну строку, если заменить findall на search не находит ссылку которая мне нужна
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2023, 19:13
Цитата Сообщение от torwald Посмотреть сообщение
если заменить findall на search не находит ссылку которая мне нужна
такого быть не может

Добавлено через 38 секунд
Python
1
s = re.search(p, str(response))[0]
Добавлено через 1 минуту
Ах-ха. И скобки из регулярки убери
0
0 / 0 / 0
Регистрация: 26.10.2022
Сообщений: 35
18.01.2023, 19:16  [ТС]
Спасибо ссылку выводит, но после падает в ошибку

Python
1
2
3
4
Traceback (most recent call last):
  File "C:\Users\pc\PycharmProjects\pythonProject\switchpitch-qa\debug.py", line 34, in <module>
    s = re.search(p, str(response))[0]
TypeError: 'NoneType' object is not subscriptable
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2023, 19:19
Эта ошибка означает, что регулярка ничего не нашла. Как у тебя там ссылка могла вывестись?

Добавлено через 55 секунд
А, я понял. Первый цикл тоже убирай
0
0 / 0 / 0
Регистрация: 26.10.2022
Сообщений: 35
18.01.2023, 19:20  [ТС]
Сначало ошибка, после ссылку выводит
Python
1
2
3
4
5
6
Traceback (most recent call last):
  File "C:\Users\pc\PycharmProjects\pythonProject\switchpitch-qa\debug.py", line 34, in <module>
    s = re.search(p, str(response))[0]
TypeError: 'NoneType' object is not subscriptable
 
"http://links.url.com=\r\n/ls/click?upn=3DESOi2zSjWnoYTaMBHu-2BeWTtzsp4lX-2FlEHM-2Fm-2BOaFf6UfzTACsLX=\r\nCuovjm3iyLaCnkyGBTtZFXpvV90AMuZuQUTxm6pboGuCcm-2FJINu1lHaoP6ehXcWMOcMzGieUZ=\r\nbE4hR902_hKqJPPJE67uYOK2uDoNywvZwU7WeN1wEOYtC7WrQudknVTTYGjhHaoKzoj5LhWCI4l=\r\nBGNyGqhRwtbxujPAn2hFoVNvI5nZdfmuJZaZisI7I5fk11EpL6cNgZslRoXdRYY0njR5UVMPIIc=\r\nkGzWVKRmmtRze3YiyL3uJ2orkuuYiLLv0i-2BfzkALaAe-2B46CMu675lmf3mxbYcS-2FgpH7TT=\r\nFahYC43tVkRYxFWdaY-2Fh5B8Us-3D"
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2023, 19:22
Выложи весь msg

Добавлено через 25 секунд
Или код целиком давай. В части запроса
0
0 / 0 / 0
Регистрация: 26.10.2022
Сообщений: 35
18.01.2023, 19:22  [ТС]
Это я подключаюсь к почте и из сообщения получаю urlы
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
status, messages = imap.select("INBOX")
# number of top emails to fetch
m = 1
# total number of emails
messages = int(messages[0])
 
for i in range(messages, messages - m, -1):
    # fetch the email message by ID
    res, msg = imap.fetch(str(i), "(RFC822)")
    # print(msg)
    # for response in msg:
    #     p = re.compile(u'"(http://links.*?)"')
    #     for m in re.findall(p, str(response)):
    #         print(m)
    for response in msg:
        p = re.compile(u'"http://links.*?"')
        s = re.search(p, str(response))[0]
        print(s)
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2023, 19:23
Этот кусок ниочем. Выложи весь msg
0
0 / 0 / 0
Регистрация: 26.10.2022
Сообщений: 35
18.01.2023, 19:27  [ТС]
Что такое msg?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2023, 19:28
0
0 / 0 / 0
Регистрация: 26.10.2022
Сообщений: 35
18.01.2023, 19:28  [ТС]
если вы про код, то это все выше только подключение imap, моя почта и пароль
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2023, 19:30
Елки-палки. Это переменная, по которой ты бегаешь циклом в надежде вытащить нужные ссылки.
0
0 / 0 / 0
Регистрация: 26.10.2022
Сообщений: 35
18.01.2023, 19:36  [ТС]
Добавлено через 4 минуты
Да так и есть это переменная которая получает тело сообщения и в нем я ищу ссылки
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2023, 19:41
Лучший ответ Сообщение было отмечено torwald как решение

Решение

Python
1
print(re.search(r'http://links[^"]+', msg)[0])
А вообще, это кривой способ. Тело письма нужно "распаковать" из объекта msg.
https://habr.com/ru/post/688784/
1
0 / 0 / 0
Регистрация: 26.10.2022
Сообщений: 35
18.01.2023, 19:45  [ТС]
Что то не работает
Python
1
2
3
4
for i in range(messages, messages - m, -1):
    # fetch the email message by ID
    res, msg = imap.fetch(str(i), "(RFC822)")
    print(re.search(r'http://links[^"]+', msg)[0])
Traceback (most recent call last):
File "C:\Users\pc\PycharmProjects\pythonProje ct\switchpitch-qa\debug.py", line 27, in <module>
print(re.search(r'http://links[^"]+', msg)[0])
File "C:\Users\pc\AppData\Local\Programs\Pyth on\Python310\lib\re.py", line 200, in search
return _compile(pattern, flags).search(string)
TypeError: expected string or bytes-like object
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.01.2023, 19:48
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Тело письма нужно "распаковать" из объекта msg.
1
0 / 0 / 0
Регистрация: 26.10.2022
Сообщений: 35
18.01.2023, 19:58  [ТС]
Спасибо заработало
Python
1
    print(re.search(r'http://links[^"]+', str(msg))[0])
msg перевел в строку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.01.2023, 19:58
Помогаю со студенческими работами здесь

как сравнить элементы двух массивов, но только так, чтобы первый сравнивался только с первым, второй только со вторым и т.д.?
Подскажите пожалуйста, как сравнить элементы двух массивов, но только так, чтобы первый сравнивался только с первым, второй только со...

Дано действительное число. Пользуясь только умножением, получить A^6 за три операции и A^7 за четыре операции
1. Дано действительное число A. Пользуясь только умножением, получить A6 за три операции и A7 за четыре операции и вычислить eA6 и eA7 .

получаю данные Object (Array_Of_vehicle) как получить таблицу ?
получаю данные !тока примерно! на самом деле данных по больше: список машин с веб сервиса с помощью компонента HTTPRIO1.. ...

WM_GETTEXT позволяет получить только первый символ (цифру)
Итак, здравствуйте. Условия - на виртуальной машине с win2k установлена msvc6. Запуск бинарника вполняется из под wine, эмулирующего...

Как максимально быстро вычислить arctan(x), используя только четыре арифметических действия?
Допустим, есть тип действительных чисел, в котором определены четыре арифметических действия (вычисляются быстро) и функции Exp, Sin, Cos...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru