반응형
50일차!! 와쿠와쿠
Part 3. PYTHON _ 데이터 분석 프로젝트
04. 파이썬 데이터 분석 프로젝트
7. 부동산 뉴스기사 키워드 추출을 통한 연도별 이슈 분석
1) 크롤링하기
- '부동산' 뉴스 기사 크롤링
first_day = pd.date_range('2018-01-01', '2023-08-31', freq='MS').strftime('%Y.%m.%d')
last_day = pd.date_range('2018-01-01', '2023-08-31', freq='M').strftime('%Y.%m.%d')
date_list = list(zip(first_day, last_day))
keyword = '부동산'
data = pd.DataFrame()
for dt in tqdm(date_list):
dt1 = [dt[0].replace('.',''), dt[1].replace('.','')]
for num in range(1, 101, 10):
url = f'https://search.naver.com/search.naver?where=news&query={keyword}&sm=tab_opt&sort=0&photo=0&field=0&pd=3&ds={dt[0]}&de={dt[1]}&docid=&related=0&mynews=0&office_type=0&office_section_code=0&news_office_checked=&nso=so%3Ar%2Cp%3Afrom{dt1[0]}to{dt1[1]}&is_sug_officeid=0&office_category=0&service_area=1&start={num}'
user_agent = generate_user_agent()
headers = {'User-Agent':user_agent}
res = requests.get(url, headers=headers)
time.sleep(random.random())
soup = bs(res.text, 'html.parser')
title = [i.text for i in soup.find_all('a', class_='news_tit')]
link = [i['href'] for i in soup.find_all('a', class_='news_tit')]
press = [i.text for i in soup.find_all('a', class_='info press')]
temp = pd.DataFrame({'title':title, 'link':link, 'press':press, 'date_ym':dt1[0][:6]})
if len(title) < 1 : #크롤링이 아무것도 되지 않았으면 루프를 종료, 시간 텀을 가진 뒤 다시 크롤링
break
data = pd.concat([data, temp])
2) 질문 만들기
연도별로 부동산 전망에 대한 뉴스 키워드는 어떻게 변화했는가?
3) 데이터 전처리
- 키워드 추출을 위한 한글 형태소 분석기
from konlpy.tag import Mecab
mecab = Mecab()
data['NNG'] = data['title'].apply(lambda x: [i[0] for i in mecab.pos(x) if i[1] in ("NNG")])
data['year'] = data['date_ym'].apply(lambda x: int(x[:4]))
data.head()
- 형태소 분석기 전
- 형태소 분석기 후
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
반응형
'Challange' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 52일차 미션 (3월 23일) : 데이터 분석 Master Class 강의 후기 (0) | 2024.03.23 |
---|---|
패스트캠퍼스 환급챌린지 51일차 미션 (3월 22일) : 데이터 분석 Master Class 강의 후기 (0) | 2024.03.22 |
패스트캠퍼스 환급챌린지 49일차 미션 (3월 20일) : 데이터 분석 Master Class 강의 후기 (0) | 2024.03.20 |
패스트캠퍼스 환급챌린지 48일차 미션 (3월 19일) : 데이터 분석 Master Class 강의 후기 (0) | 2024.03.19 |
패스트캠퍼스 환급챌린지 47일차 미션 (3월 18일) : 데이터 분석 Master Class 강의 후기 (2) | 2024.03.18 |