파이썬을 하려고하는데요 ㅠ 질문 부탁..

파이썬을 하려고하는데요 ㅠ 질문 부탁..

QA

파이썬을 하려고하는데요 ㅠ 질문 부탁..

본문

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()
 

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
전체 209
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT