키워드를 사용해서 네이버 뉴스 크롤링을 사용하여 텔레그램 봇으로 보내려고 합니다.
코딩 완전 초보인데 유튜브랑 구글링해서 아래와같이 코드를 파이썬이랑 비주얼 스튜디오 코드를 활용해서 다음과 같이 짰습니다
#### 라이브러리 불러오기
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>
고수님들 도움좀 부탁 드립니다.