파이썬 크롤링 고수님들 도움 좀 부탁 드립니다. 네이버 뉴스 키워드 크롤링 텔레그램봇

조회수 536회

키워드를 사용해서 네이버 뉴스 크롤링을 사용하여 텔레그램 봇으로 보내려고 합니다.

코딩 완전 초보인데 유튜브랑 구글링해서 아래와같이 코드를 파이썬이랑 비주얼 스튜디오 코드를 활용해서 다음과 같이 짰습니다

#### 라이브러리 불러오기
import requests

from bs4 import BeautifulSoup
import telegram

from apscheduler.schedulers.blocking import BlockingScheduler

####검색 키워드
search_word = '폐기물 매립장'

####텔레그램 봇 생성
token = '2144842764:AAEB_1dpdpCxeUnX2rY0PnFMqrt2O6H5c0A'
bot = telegram.Bot(token=token)
####스케줄러 생성
sched = BlockingScheduler()
####기존에 보냈던 링크를 담아둘 리스트
old_links=[]

####링크 추출 함수
def extract_links(old_links=[]):
    url = f'https://m.search.naver.com/search.naver?sm=mtp_hty.top&where=m&query={search_word}'
    req = requests.get(url)
    html = req.text
    soup = BeautifulSoup(html, 'html.parser')

    search_result = soup.select_one('#news_result_list')
    news_list = search_result.select('.bx >.news_wrap >a')

    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='879999105', text = link)
    else:
        bot.sendMessage(chat_id='879999105', text='새로운 뉴스 없음')
    old_links += new_links.copy()
    old_links = list(set(old_links))

####최초 시작
send_links()
####스케줄러 세팅 및 작동
sched.add_job(send_links, 'interval', seconds=30)

sched.start()

===에러 메세지 ======

PS C:\Users\110121\Documents\projects> & C:/Users/110121/AppData/Local/Programs/Python/Python310/python.exe c:/Users/110121/Documents/projects/waste_landfill.py
Traceback (most recent call last):
  File "c:\Users\110121\Documents\projects\waste_landfill.py", line 54, in <module>
    send_links()
  File "c:\Users\110121\Documents\projects\waste_landfill.py", line 44, in send_links
    new_links = extract_links(old_links)
  File "c:\Users\110121\Documents\projects\waste_landfill.py", line 26, in extract_links
    news_list = search_result.select('.bx >.news_wrap >a')
AttributeError: 'NoneType' object has no attribute 'select'
PS C:\Users\110121\Documents\projects> 

고수님들 도움좀 부탁 드립니다.

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)