본문 바로가기
python3 selenium

Python selenium slack에서 전송된 문지 확인 및 특정 문자 추출하기

by Pymac 2023. 11. 27.
반응형

메시지가 도착할 때까지 대기하고, 메시지가 도착하면 해당 메시지에서 숫자를 추출하여 변수에 저장하는 코드입니다

import re

mestext = 0

while mestext == 0:
    response = client.conversations_history(channel="Channel ID", limit=1)  # 최근 1개의 메시지만 가져오도록 변경
    messages = response["messages"]

    if messages:
        mesText = messages[0].get('text')

        # 정규 표현식을 사용하여 숫자 추출
        numbers = re.findall(r'\b\d+\b', mesText)

        # 추출된 숫자가 있다면 변수에 넣고 루프를 종료
        if numbers:
            mestext = numbers[0]

# 결과 출력
print(mestext)

이 코드는 0.1초 간격으로 메시지를 확인하여 메시지가 도착하면 해당 메시지에서 숫자를 추출하고 루프를 종료합니다.


===================================

메시지를 계속 감시하고, 새로운 메시지가 도착할 때까지 대기하는 코드로 변경해 보겠습니다

import re
import time

mestext = 0

while mestext == 0:
    response = client.conversations_history(channel="Channel ID", limit=1)
    messages = response["messages"]

    if messages:
        mesText = messages[0].get('text')

        # 정규 표현식을 사용하여 숫자 추출
        numbers = re.findall(r'\b\d+\b', mesText)

        # 추출된 숫자가 있다면 변수에 넣고 루프를 종료
        if numbers:
            mestext = numbers[0]

    # 0.1초 대기
    time.sleep(0.1)

# 결과 출력
print(mestext)

이 코드는 계속해서 최근에 도착한 메시지를 확인하고, 새로운 메시지가 도착하면 해당 메시지에서 숫자를 추출하여 루프를 종료합니다.
==================================

예시 "1234 인증번호 5678 입니다[075707]"에서 1234, 5678, 075707을 각각 추출하는 방법은 다음과 같습니다

import re

mesText = "1234 인증번호 5678 입니다[123456]"

# 방법 1: 인증번호로 추정되는 네 자리 숫자 추출
code_1 = re.search(r'\b\d{4}\b', mesText).group()
print("방법 1:", code_1)

# 방법 2: 대괄호 안에 있는 숫자 추출
code_2 = re.search(r'\[(\d+)\]', mesText).group(1)
print("방법 2:", code_2)

# 방법 3: 모든 숫자 추출
codes_3 = re.findall(r'\b\d+\b', mesText)
print("방법 3:", codes_3)


"방법 1"은 네 자리 숫자를 추출합니다.
"방법 2"는 대괄호 안에 있는 숫자를 추출합니다.
"방법 3"은 모든 숫자를 추출합니다.
이 방법 중 필요에 따라 원하는 방법을 선택하여 사용할 수 있습니다.

반응형