파이썬을 하려고하는데요 ㅠ 질문 부탁..
본문
search_word 배열 넣고
url로 선언하려하는데 ㅠ 안되드라구요...혹시 틀린걸까요..? 여러개 키워드하고싶은데..
(네이버 뉴스에 면종류 기사 알림입니다!)
도움 좀 부탁드립니다 ㅠ
import requests
from bs4 import BeautifulSoup
import telepot
#시간 마다 알람 지정용
from apscheduler.schedulers.blocking import BlockingScheduler
#서치 키워드
search_word = ['라면','라멘','국수']
#텔레그램 봇 생성
token = 'xxx'
bot = telepot.Bot(token=token)
#스케줄러 생성
sched = BlockingScheduler()
#기존에 보냈던 링크를 담아둘 리스트
old_links = []
#링크 추출 함수
def extract_links(old_links=[]):
url = f'https://search.naver.com/search.naver?where=news&query={search_word}&sm=tab_opt&sort=1'
req = requests.get(url)
html = req.text
soup = BeautifulSoup(html, 'html.parser')
search_result = soup.select_one('.list_news')
news_list = search_result.select('.bx > .news_wrap .news_tit')
links = []
for news in news_list[:5]:
link = news['href']
links.append(link)
new_links=[]
for link in links:
if link not in old_links:
new_links.append(link)
print(new_links)
return new_links
#이전 링크를 매개변수로 받아서 비교 후, 새로운 링크만 출력
#차후 이 부분을 메세지 전송 코드로 변경하고 매시간 동작하도록 설정
#새로운 링크가 없다면 빈 리스트 반환
def send_links():
global old_links
new_links = extract_links(old_links)
if new_links:
for link in new_links:
bot.sendMessage(chat_id='xxx', text = link)
old_links += new_links.copy()
old_links = list(set(old_links))
#최초 시작
send_links()
#스케줄 설정
#5초 마다 해당 코드 반복 실행
sched.add_job(send_links, 'interval', seconds = 5)
#시작
sched.start()
답변을 작성하시기 전에 로그인 해주세요.