import requests from bs4 import BeautifulSoup import pandas as pd # URL 설정 url = "https://news.naver.com/main/ranking/popularDay.naver" # 요청 보내기 response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') # 뉴스 리스트 추출 news_list = [] for news_item in soup.select('div.rankingnews_box ul.rankingnews_list li'): # 순위 번호가 존재하는지 확인 rank_tag = news_item.find('em', class_='list_ranking_num') rank = rank_tag.text if rank_tag else 'No Rank' # 제목이 존재하는지 확인 title_tag = news_item.find('a', class_='list_title') title = title_tag.text.strip() if title_tag else 'No Title' # 링크가 존재하는지 확인 link = title_tag['href'] if title_tag else '#' # 시간 정보가 존재하는지 확인 time_tag = news_item.find('span', class_='list_time') time = time_tag.text.strip() if time_tag else 'No Time' # 이미지 태그와 src 속성 확인 img_tag = news_item.find('img') image_url = img_tag['src'] if img_tag and 'src' in img_tag.attrs else 'No Image Available' news_list.append({ 'Rank': rank, 'Title': title, 'Link': link, 'Time': time, 'Image URL': image_url }) # 데이터프레임으로 변환 df = pd.DataFrame(news_list) # 결과 출력 print(df)