Toggle navigation
Toggle navigation
This project
Loading...
Sign in
wlstp8473
/
telegram_Messenger_Chatbot
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
wlstp8473
2021-06-09 05:27:24 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
22996bdb23ee8e14f9763338e5157a2fe026bd28
22996bdb
1 parent
f23822b5
weather_info
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
93 additions
and
0 deletions
weather_info.py
weather_info.py
0 → 100644
View file @
22996bd
import
telegram
from
telegram.ext
import
Updater
from
telegram.ext
import
MessageHandler
,
Filters
from
bs4
import
BeautifulSoup
from
selenium
import
webdriver
import
urllib.request
as
req
import
os
from
selenium.webdriver.support.ui
import
WebDriverWait
from
selenium.webdriver.support
import
expected_conditions
as
EC
from
selenium.webdriver.common.by
import
By
from
pprint
import
pprint
import
requests
html
=
requests
.
get
(
'https://search.naver.com/search.naver?query=날씨'
)
#pprint(html.text)
def
weather_info_crawling
():
soup
=
BeautifulSoup
(
html
.
text
,
'html.parser'
)
data1
=
soup
.
find
(
'div'
,
{
'class'
:
'weather_box'
})
find_address
=
data1
.
find
(
'span'
,
{
'class'
:
'btn_select'
})
.
text
find_address_info
=
(
'현재 위치: '
+
find_address
+
"
\n
"
)
find_currenttemp
=
data1
.
find
(
'span'
,{
'class'
:
'todaytemp'
})
.
text
find_currenttemp_info
=
(
'현재 온도: '
+
find_currenttemp
+
'℃'
+
"
\n
"
)
data2
=
data1
.
findAll
(
'dd'
)
find_dust
=
data2
[
0
]
.
find
(
'span'
,
{
'class'
:
'num'
})
.
text
find_dust_info
=
(
'현재 미세먼지: '
+
find_dust
+
"
\n
"
)
result
=
find_address_info
+
' '
+
find_currenttemp_info
+
' '
+
find_dust_info
return
result
def
find_currenttemp_num
():
soup
=
BeautifulSoup
(
html
.
text
,
'html.parser'
)
data1
=
soup
.
find
(
'div'
,
{
'class'
:
'weather_box'
})
find_currenttemp
=
data1
.
find
(
'span'
,{
'class'
:
'todaytemp'
})
.
text
find_currenttemp_num
=
int
(
find_currenttemp
)
result
=
find_currenttemp_num
return
result
#################################################################3
#텔레그램 관련 코드
token
=
"1721885449:AAHDGMbjSJfhXxML6nfSCpfiU7SghpL_vOE"
id
=
"1657858421"
bot
=
telegram
.
Bot
(
token
)
info_message
=
'''기능: (#오늘 날씨)'''
########기능 리스트 ##############33
bot
.
sendMessage
(
chat_id
=
id
,
text
=
info_message
)
react_weather
=
'''오늘 날씨 봐봐'''
updater
=
Updater
(
token
=
token
,
use_context
=
True
)
dispatcher
=
updater
.
dispatcher
updater
.
start_polling
()
# 챗봇 응답
def
handler
(
update
,
context
):
user_text
=
update
.
message
.
text
# 사용자가 보낸 메세지를 user_text 변수에 저장합니다.
# 오늘 확진자 수 답장
if
(
"오늘 날씨"
in
user_text
):
weather_info
=
weather_info_crawling
()
bot
.
send_message
(
chat_id
=
id
,
text
=
weather_info
)
bot
.
sendMessage
(
chat_id
=
id
,
text
=
react_weather
)
#bot.send_photo(chat_id=id, photo=open(r'C:\Users\user\Documents\project_opensw-chatbot\telegram_Messenger_Chatbot\img\weather_cloth_info.jpg', 'rb')) ###절대 경로니까 수정하세요!!!!!!
if
(
find_currenttemp_num
()
>=
27
):
bot
.
send_message
(
chat_id
=
id
,
text
=
"와 미친,, 27도가 넘는데? 낼 무조건 시원하게 얇고 통풍 잘 되는 거 입어, 쪄 죽겠다 ㅋㅋㅋㅋ"
)
elif
(
find_currenttemp_num
()
>=
23
):
bot
.
send_message
(
chat_id
=
id
,
text
=
"날씨가 23도 이상이네,,, ㅜㅜ 반팔에 반바지 정도 입으면 충분할 듯!"
)
elif
(
find_currenttemp_num
()
>=
20
):
bot
.
send_message
(
chat_id
=
id
,
text
=
"20도 이상이면 밤엔 많이 쌀쌀할 듯 ㅠㅠ,, 진세 감기 조심해!"
)
elif
(
find_currenttemp_num
()
>=
15
):
bot
.
send_message
(
chat_id
=
id
,
text
=
"헐 15도 이상이면 가을 날씨네,,,따뜻하게 입고가!!"
)
else
:
update
.
message
.
reply_text
(
"꽁꽁 싸매고 나가"
)
########################################################## 이어서 작업
else
:
update
.
message
.
reply_text
(
"ㅎㅎ"
)
echo_handler
=
MessageHandler
(
Filters
.
text
,
handler
)
dispatcher
.
add_handler
(
echo_handler
)
Please
register
or
login
to post a comment