2020/01/21 - [Back-end/Python] - [크롤링] 직방에서 방찾기 (1) - 데이터 분석
2020/01/21 - [Back-end/Python] - [크롤링] 직방에서 방찾기 (2) - Crawler
이전 포스트들에서 직방에서 매물을 크롤링하는 예제를 다루었다. 그러나, 매물을 확인할 때마다 PC에서 명령어로 Python을 실행하는 것도 여간 번거로운 일이 아닐 수 없다. 그래서, 스마트폰을 이용해서 언제 어디서나 확인할 수 있는 방법이 없을까 찾아보다가 카카오톡 메신저로 알림을 받는 방법과 텔레그램의 봇을 이용한 방법에 대해서 알게되었다. 카카오톡을 사용하려면 Token을 주기적으로 갱신해야되는 번거로움이 있기 때문에 이번 포스트에서는 텔레그램을 이용하여 스마트폰에서 매물정보를 확인할 수 있는 방법에 대해서 알아보도록 하겠다.
1. 텔레그램 봇이란?
1-1. 텔레그램에서 제공하는 API서비스로 대화형 로봇이라고 할 수 있음.
1-2. 카카오톡의 챗봇이나 인터파크의 톡집사 등이 대표적인 예라고 할 수 있음.
2. 텔레그램 설치 및 봇 등록.
2-1. 텔레그램 설치.
- Telegram Install Version 다운로드.
- Telegram Portable Version 다운로드.
2-2. 텔레그램 실행.
2-3. 'BotFather' 검색.
- 'BotFather'는 텔레그램에 있는 모든 봇을 관리하는 마스터 봇.
- 이 BotFather를 통해 자신의 봇을 관리할 수 있음.
- 가짜를 사칭하는 봇들이 많으니 주의, 반드시 그림과 똑같은 봇을 선택하길 바람.
2-3. 나만의 봇 등록.
- [ /newbot ] 명령어를 입력하면, 봇의 이름을 입력하라고 함.
- 봇의 이름이 'bot'으로 끝나지 않는 경우 생성되지 않음.
- 정상적으로 등록되면 'HTTP API Access Token'을 발급해줌.
2-4. 내가 만든 봇 검색.
- BotFather로 내가 만든 봇이 검색됨.
- 대화창에서 [ 시작 ] 버튼을 누르면 [ /start ] 명령어가 자동으로 전송되는 것을 확인할 수 있음.
- 지금은 아무기능도 없기 때문에 무엇을 입력하든 반응이 없음.
- 다음 작업을 통해 이 대화창에 생명을 불어넣어 줄 것임.
3. 나만의 봇 예제1 - Message Push.
3-1. 패키지 설치.
> pip install python-telegram-bot
- 2020.01.29 기준 12.3.0버전.
3-2. 소스 작성.
- dochis_bot.py
1
2
3
4
5
6
7
8
9
|
#dochis_bot.py
import telegram
BOT_TOKEN='672768316:AAHXpYmnMzGp_eH0i-juikUFU6q9y78CBhA'
bot = telegram.Bot( token=BOT_TOKEN )
chat_id = bot.getUpdates()[-1].message.chat.id
bot.sendMessage(chat_id=chat_id, text='[{}]안녕하세요, 도치봇입니다.'.format( chat_id ) )
|
cs |
- 1 ln: telegram 패키지 Import.
- 3 ln: [ 2-3 ]에서 발급받은 Access Token.
- 5 ln: Telegram 봇 생성.
- 6 ln: 마지막에 받은 Message의 chat_id를 가져오기.
* 반드시 대화창에서 메시지가 한번이라도 전송되어야 함.
- 8 ln: Telegram으로 메시지 보내기.
3-3. 실행.
> python dochis_bot.py
3-4. 실행 결과.
- 입력한 메시지가 정상적으로 전송된 것을 확인할 수 있음.
4. 마치며.
- 지금까지 텔레그램 봇을 등록하고 실행하는 예제까지 만들어보았다. 그러나, 이번에 다룬 예제는 봇에서 Message를 Push해주는 방식이기 때문에 스케줄러로 처리할 때 유용할 것 같다. 그리고, 우리가 처리할 방식은 명령어를 통한 크롤링이기 때문에 이 방식은 적합하지 않다.
- 다음 포스트에서는 Handler를 추가하여 명령어를 입력하고 처리하는 방법에 대해서 알아보도록 하겠다.
'Back-end > Python' 카테고리의 다른 글
[Telegram] 무작정 시작하기 (3) - Button Message (0) | 2020.01.30 |
---|---|
[Telegram] 무작정 시작하기 (2) - CommandHandler (0) | 2020.01.30 |
[Celery] 무작정 시작하기 (5) - Monitoring (0) | 2020.01.28 |
[크롤링] 직방에서 방찾기 (2) - Crawler (0) | 2020.01.21 |
[크롤링] 직방에서 방찾기 (1) - 데이터 분석 (2) | 2020.01.21 |
댓글