Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- FastAPI
- enumerate #함수 # def
- 자연어처리 환경 컨테이너
- pickle #datetime
- aiflow
- requesthead
- 원하는 태그 찾기
- 정규표현식
- JavaScripts
- mariadb설치 #mysql설치
- ssh operator
- text.children
- K-ICT
- celery
- beautifulsoup
- 파일저장
- Docker
- Google Cloud Storage
- cron
- airflow
- 리눅스 # 기초
- 빗썸api
- HeidiSQL
- etl
- 자동화
- requests
- datetime #zip
- 가상환경 초기세팅
- 모델서빙
- with open
Archives
- Today
- Total
오음
python) 네이버 기사제목,내용 크롤링 본문
네이버 스포츠에서 이시각 많이 본 뉴스의 제목과 내용을 크롤링
# 필요한 패키지 import
from bs4 import BeautifulSoup
from selenium.webdriver.common.by import By
from selenium import webdriver
import re
# 네이버 스포츠 인기뉴스 url로 데이터 get
driver = webdriver.Chrome()
news_url = "https://sports.news.naver.com/wfootball/news/index?isphoto=N&type=popular"
driver.get(news_url)
# 이시각 많이 본 뉴스들의 url주소 가져오기
# "div"태그 , class_='text'['href']
bs = BS(driver.page_source)
newurl = bs.findAll("a" , class_ = 'title')
# 이시각 뉴스 url주소 필요한 부분 가져오기 네이버 스포츠뉴스 url은 oid와 aid가 주어짐 / [https://sports.news.naver.com/news?{i}] i부분
url_list = []
for i in newurl:
url_list.append(i['href'].split('?')[1])
url_list = url_list[1:-4]
url_list
get방식으로 불러올 필요한 url주소의 일부를 가져온다.
# 순위 안에 있는 기사제목 내용 크롤링하기
driver = webdriver.Chrome()
for i in url_list:
news_url = f"https://sports.news.naver.com/news?{i}"
driver.get(news_url)
time.sleep(2)
bs = BS(driver.page_source)
title = bs.find("h4",class_='title').text
text = bs.find("div",id="newsEndContents")
# 기사 밑부분 필요없는 부분 빼고 기사 내용 찾기
for x in text.children:
type(x)
type_test= type(x)
newstext = " ".join([x.strip() for idx, x in enumerate(text.children) if type(x) == type_test])
# 저장못하는 상용문자들 제거
title = re.sub("[\/:*?\"<>|]", "", title)
# 폴더 안에 title.text -> text 저장하기
with open(f"./news/{title}.txt",'w',encoding='utf-8-sig') as f:
f.write(newstext)
기사 제목과 내용을 불러와서 새로만든 news 폴더 안에 txt로 저장하기
# 폴더안에 모든 file제목과 file 내용 DataFrame 만들기
import os
import pandas as pd
title = []
for i in os.listdir('./news'):
title.append(i.split(".")[0])
text = []
for i in os.listdir("C:/workspace/news"):
with open("C:/workspace/news/{}".format(i),"r",encoding="utf-8-sig") as f:
text .append(f.read())
# 데이터 프레임으로 만들기
news_df = pd.DataFrame({'title':title,'text':text})
news_df
폴더 내 텍스트 파일 여러개 읽기
'데이터 엔지니어링 > 크롤링' 카테고리의 다른 글
멜론 크롤링 (0) | 2023.10.13 |
---|---|
python) requests 활용 스타벅스 크롤링 (0) | 2023.03.06 |