goodthings4me.tistory.com
[파이썬 크롤링] 네이버 지식인에 올라온 질문 '다음 랭킹 뉴스 기사 제목 본문 크롤링 후 텍스트 파일에 저장하는 법'에 대해 파이썬으로 작성해보았다.
다음 랭킹 뉴스 기사 제목, 본문 크롤링 후 텍스트 파일로 저장
[파이썬 소스 코드]
import requests
from bs4 import BeautifulSoup
import os
def daum_news():
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'}
url = f'https://news.daum.net/'
response = requests.get(url, headers=headers)
if response.status_code == 200:
# print(response.text)
soup = BeautifulSoup(response.text, 'html.parser')
lis = soup.find('ul', class_='list_newsissue').find_all('li')
print(len(lis)) # 20
for li in lis:
a_tag = li.select_one('div > div > strong > a')['href']
title = li.select_one('div > div > strong > a').text.strip().replace(' ', '')
print(a_tag, title)
res = requests.get(a_tag, headers=headers)
soup2 = BeautifulSoup(res.text, 'html.parser')
summary = ''
content = ''
try:
summary = soup2.find('strong', {'class': 'summary_view'}).text.strip()
print(summary)
except:
summary = '요약 없음'
pass
try:
content = soup2.find('div', id='harmonyContainer').text.strip()
print(content)
except:
content = "기사 본문 없음"
continue
contents = '[기사 제목] ' + title + '\n\n' + summary + '\n\n' + content
## 기사 내용 저장
folder_name = f'./daum_news'
file_name = title[:15].strip()
# 파일명에서 특수문자 제거
special_char = '\/:*?"<>|'
for c in special_char:
if c in file_name:
file_name = file_name.replace(c, 'x')
if not os.path.exists(folder_name):
os.makedirs(folder_name)
with open(folder_name + '/' + file_name + '.txt', 'w', encoding='utf-8') as f:
f.write(contents)
# break
else :
print(response.status_code)
daum_news()
저장할 폴더를 'daum_news'로 만들고 파일명은 기사 제목에서 15자까지 추출하여 사용하며, 제목에 특수문자가 있을 경우 저장이 안되는 오류를 방지하기 위해 특수문자를 제거해서 처리함
[실행 결과]
20
https://v.daum.net/v/20220601124604173 지상파 "대선 때 정확성 봤지? 이번 개표방송은 더 정확하게!"
[6.1 지방선거]MBC, KBS, SBS 선거개표 방송 경쟁M "출구서 당선확률",
K "AR존 운영" S "3면+LED월"
한국방송 제공
선거날만 되면 방송사들은 또 다른 선거를 치른다. 바로 개표방송 대결. 플랫폼이 다양해면서 시청자를 붙들려는 방송사의 경쟁도 더욱 치열해
지고 있다. 방송사들은 8~9개월 전부터 선거방송기획팀을 조직해 프로그
램 구성에서 그래픽(CG)까지 모든 것을 체계적으로 준비한다. <에스비에
스>가 2017년 대통령 선거 때 미국드라마 <왕좌의 게임>에서 아이디어를
얻은 결과물이 화제를 모은 뒤부터는 개표방송에 거는 시청자의 기대도
점점 높아지고 있다.
오늘(1일) 실시된 ‘제8회 전국동시 지방선거’ 개표방송은 지난 대선에
이은 방송사들의 2차전이다. 이재명·안철수 전 대선 후보가 출마하는 등
여느 때보다 관심이 높아서 방송사들도 특히 공을 들였다.
이번 선거방송을 요약하자면 3사 모두 “정확성에 대한 자신”을 강조하고
있다. <문화방송>(MBC)은 “정통”, <한국방송>(KBS)는 “명품”, <에스비
에스>(SBS)는 “신박함”으로 구분 짓는 차이는 있지만, 지난 대선 때보다
도 “더 빠르고 정확해졌다”고 입을 모은다. 지난 대선 때 인정받은 지상
파 출구조사의 정확성과 신뢰성을 이번 선거방송에서 활용한 듯하다. <
문화방송> 쪽은 “지난 3월9일 진행된 대통령 선거방송 이후 3개월이 채
안 되는 짧은 기간 동안 역량을 총동원했다”고 말했다.
.
.
'코딩 연습 > 파이썬 크롤링' 카테고리의 다른 글
문자로 된 티스토리 블로그 주소(포스트 주소) 파이썬 크롤링 방법 (0) | 2022.06.09 |
---|---|
스마트 스토어 데이터 크롤링하여 sqlite3에 저장하기 (0) | 2022.06.02 |
온채널 도매 사이트 명예의전당 우수상품 리스트 (0) | 2022.05.24 |
구글 이미지 검색 후 크롤링 (0) | 2022.05.20 |
네이버 인플루언서 탭에서 인플루언서의 이름과 팬 숫자 추출하기 (0) | 2022.05.18 |
댓글