호쌤
호쌤 Just For Fun

[Python 데이터 수집] 웹 페이지 컨텐츠 수집

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[Python 데이터 수집] 웹 페이지 컨텐츠 수집≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

[Python 데이터 수집] 웹 페이지 컨텐츠 수집

파이썬의 requests 모듈은 웹 상에 공개되어 있는 컨텐츠는 어떤 형식이든지 수집할 수 있습니다. requests가 수집한 컨텐츠의 형식이 웹 페이지(HTML)인 경우 bs4 패키지의 BeautifulSoup 패키지를 사용하여 원하는 부분의 컨텐츠만 추려낼 수 있는데 이러한 처리를 웹 크롤링이라고 합니다.

웹 크롤링을 위해서는 HTML의 구조와 CSS 선택자에 대한 선수지식이 필요합니다. 이 두 가지 내용에 대한 것만 다루더라도 독립적인 하나의 과목이 구성되어야 하기 때문에 이 포스팅에서는 HTML과 CSS에 대한 선수지식이 있다고 가정하고 진행합니다.

#01. 용어정리

1) Web Scraping (웹 스크랩핑)

컴퓨터 소프트웨어 기술로 웹 사이트들에서 원하는 정보를 추출하는 것.

국내에서는 흔히 크롤링이라는 용어로 많이 알려져 있다.

하나의 페이지에서 데이터 수집

2) 웹 크롤러

인터넷에 있는 웹 사이트를 방문해서 자료를 수집하는 일을 하는 프로그램.

즉, 하나의 페이지에서 파생되는 하위 페이지까지 일괄적으로 방문해서 수집하는 것을 의미.

엄청난 분량의 웹문서를 사람이 일일이 구별해서 모으는 일은 불가능에 가깝기 때문에, 웹 문서 검색에서는 이를 자동으로 수행 해 준다.

링크를 따라다니면서 복수의 페이지에서 데이터를 수집.

#01. 필요한 모듈 참조

1) 모듈 설치

명령 프롬프트 상에서 아래의 명령을 통해 필요한 모듈을 설치한다.

1
2
pip install --upgrade requests
pip install --upgrade bs4

2) 파이썬 코드에서 모듈 참조하기

1
2
import requests                     # -> 웹 페이지 요청 모듈
from bs4 import BeautifulSoup       # -> 웹 페이지 소스코드 분석 모듈

#02. 수집 준비

1) 접속을 수행하기 위한 session 객체 생성

웹 페이지로부터 데이터를 수집할 경우 항상 가장 처음에 위치해야 하는 코드입니다.

1
2
3
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"
session = requests.Session()
session.headers.update( {'User-agent': user_agent, 'referer': None} )

2) 접근할 페이지 주소 (네이버 뉴스 기사)

1
content_url = "https://news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=102&oid=001&aid=0011505454"

#03. 데이터 수집

지정한 URL에 접속하고 접속 결과를 체크한다.

1
2
3
4
5
6
7
r = session.get(content_url)

# -> 결과확인
if r.status_code != 200:
    print("%d 에러가 발생했습니다." % r.status_code)
    # 즉시 종료 --> jupyter가 재시작됨
    quit()

#04. 데이터 추출

URL에 접속해서 가져온 HTML 코드에서 분석을 원하는 부분을 추출한다.

1) 가져온 HTML 코드 확인

웹 페이지의 인코딩 형식을 확인하여 설정해야 한다.

1
2
r.encoding = "euc-kr"  # 인코딩 설정
r.text                 # HTML 전문 확인
▶ 출력결과 (일부 생략)
1
'<!DOCTYPE HTML> \r\n<html lang="ko"> \r\n<head>\r\n<meta charset="euc-kr">\r\n<meta http-equiv="X-UA-Compatible" content="IE=edge">\r\n<meta name="referrer" contents="always">\r\n<meta name="viewport" content="width=1106" />\r\n<title>정부 "코로나19 완치율 50% 달성, 우리 사회가 축하할 성과"(종합) : 네이버 뉴스</title>\r\n\n\n\t\n\t\n\t\t\n\t\n\n\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\n<meta property="me2:post_tag"\t\tcontent="연합뉴스 : 네이버뉴스"/>\n<meta property="me2:category1"\t\tcontent="연합뉴스"/>\n<meta property="me2:category2"\t\tcontent="사회"/>\n<meta property="me2:image"\t\t\tcontent="https://imgnews.pstatic.net/image/001/2020/03/28/PYH2020032307330001300_P4_20200328121308020.jpg"/>\n\n<meta property="og:title"\t\t\tcontent="정부 &quot;코로나19 완치율 50% 달성, 우리 사회가 축하할 성과&quot;(종합)"/>\n<meta property="og:type"\t\t\tcontent="article"/>\n<meta property="og:url"\t\t\t\tcontent="https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&oid=001&aid=0011505454&sid1=001"/>\n<meta property="og:image"\t\t\tcontent="https://imgnews.pstatic.net/image/001/2020/03/28/PYH2020032307330001300_P4_20200328121308020.jpg"/>\n<meta property="og:description"\t\tcontent="완치 4천811명·격리중 4천523명…&#034;아직은 집단감염 줄여야 할 시기&#034; 실내체육시설 407개소에 행정명령…방호복 국내 생산 늘려 수급 안정화 (서울=연합뉴스) 채새롬 기자 = 방역당국이 국내 신종 코로나바이러스 감"/>\n<meta property="og:article:author"\tcontent="연합뉴스 | 네이버"/>

2) 기사 본문 추출하기

뉴스기사에서 추출하고자 하는 영역에 대한 CSS 선택자를 확인한다.

jpg

크롬 브라우저의 개발자 도구를 통해 기사 본문이 포함되어 있는 영역에 대한 id속성값이 articleBodyContents 로 확인되었으므로 이 값을 soup 객체의 select()함수에게 전달하여 해당 부분을 추출한다.

select()함수의 리턴값은 HTML 객체를 원소로 갖는 리스트 객체이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 웹 페이지의 소스코드를 사용하여 HTML 분석 객체로 생성
soup = BeautifulSoup(r.text, 'html.parser')

# CSS 선택자를 활용하여 가져오기를 원하는 부분 지정
# -> "#id"값 형식으로 지정
selector = soup.select('#articleBodyContents')

# 가져온 내용이 없다면?
if not selector:
    print("크롤링 실패")
    quit()

print(type(selector))
print("-" * 50)
print(len(selector))
print("-" * 50)
selector
▶ 출력결과
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<class 'list'>
--------------------------------------------------
1
--------------------------------------------------
[<div class="_article_body_contents" id="articleBodyContents">
 <!-- 본문 내용 -->
 <!-- TV플레이어 -->
 <!-- // TV플레이어 -->
 <script type="text/javascript">
 // flash 오류를 우회하기 위한 함수 추가
 function _flash_removeCallback() {}
 </script>
 	
 	완치 4천811명·격리중 4천523명…"아직은 집단감염 줄여야 할 시기"<br/><br/>실내체육시설 407개소에 행정명령…방호복 국내 생산 늘려 수급 안정화<br/><br/>(서울=연합뉴스) 채새롬 기자 = 방역당국이 국내 신종 코로나바이러스 감염증(코로나19) 발생 이후 처음으로 28일 완치자 수가 치료 중인 환자 수를 넘어섰다며, 이는 우리 사회가 축하해야 할 성과라고 평가했다. <br/><br/>    그러나 지역사회 집단 감염이 이어지는 등 코로나19 확산 상황을 안심할 수 없어 국민들이 계속해 '사회적 거리두기'에 동참해야 한다고 강조했다.<br/><br/><span class="end_photo_org"><img alt="" src="https://imgnews.pstatic.net/image/001/2020/03/28/PYH2020032307330001300_P4_20200328121308020.jpg?type=w647"><em class="img_desc">코로나19 정례브리핑하는 윤태호 방역총괄반장(세종=연합뉴스) 김주형 기자 = 윤태호 중앙사고수습본부 방역총괄반장(보건복지부 공공보건정책관)이 23일 오전 세종시 정부세종청사에서 코로나19 대응 중앙재난안전대책본부 회의 결과 등 정례브리핑을 하고 있다. 이날 브리핑은 참석한 기자 없이 비대면으로 진행했다.<br/>    정부는 4월 5일까지 '사회적 거리두기' 강화 기간에 '공무원 복무관리 특별 지침'을 시행해 공공부문에서부터 신종 코로나바이러스 감염증(코로나19) 확산 억제에 앞장서겠다고 밝혔다. 2020.3.23 kjhpress@yna.co.kr</em></img></span><br/><br/>    윤태호 중앙사고수습본부 방역총괄반장(보건복지부 공공보건정책관)은 이날 정부세종청사에서 열린 정례 브리핑에서 "오늘은 누적 확진자 수 중 완치된 확진자 수가 격리치료 중인 확진자보다 많아져 완치율 50%를 달성했다"며 "아직 갈 길은 멀지만, 완치율 50%는 우리 사회 모두가 함께 축하할 만한 자그마한 성과"라고 말했다.<br/><br/>    윤 반장은 "방역당국은 공격적인 진단검사와 역학조사를 통해 확진자와 접촉자를 찾아 격리해 감염전파를 막았고, 국민들께서는 사회적 거리두기에 적극적으로 동참했다"며 "의료진들은 찾아낸 확진환자를 안정적으로 치료하였기에 가능한 성과였다"고 설명했다.<br/><br/>    중앙방역대책본부에 따르면 이날 0시 기준 국내에서 코로나19에 걸렸다가 완치된 사람은 4천811명으로, 격리 상태에서 치료 중인 확진자 수(4천523명)를 추월했다. 올해 1월 20일 국내 첫 코로나19 환자가 발생한 지 68일 만이다. <br/><br/>    앞서 2월 18일 31번째 확진자가 나온 이후 대구·경북 지역 확진자가 급증하면서 신규 확진자 수는 800명대까지 늘고, 격리치료 중인 확진자는 이달 12일 기준 7천500명까지 증가한 바 있다. 이후 13일부터 15일 연속으로 매일 완치되는 환자가 새로 발견되는 확진자보다 많아지면서 격리치료 중인 확진자 수는 꾸준히 감소하는 추세다.<br/><br/>    그는 "다만 대구의 한 병원에서 최근 집단감염이 발생하는 등 아직 안심할 상황은 아니고, 코로나19가 확산할 수 있는 위험은 여전히 존재한다"며 "지금은 지역사회와 집단시설의 감염을 확실히 줄여나가야 할 시기"라고 진단했다. <br/><br/>    이어 "해외 유입을 막기 위해 중앙재난안전대책본부 차원에서 해외 입국자 자가격리 확대에 대해 논의하고 있다"며 "해외 입국자 수가 많은 수도권 지자체에서 입국자 전원에 대한 자가격리 조치를 검토하고 있는 것으로 알고 있다"고 말했다.<br/><br/>    윤 반장은 "코로나19 확산 저지를 위해 국민들께서 계속해서 강화된 사회적 거리두기에 참여해 주실 것을 당부드린다"며 "당분간 많은 사람이 모이는 장소는 가급적 피하고, 종교활동도 자제해야 한다. 주말이지만 가급적 집에서 머물러 주시기를 다시 한번 더 부탁드린다"고 거듭 당부했다.<br/><br/>    중앙재난안전대책본부는 이날 실내체육시설 8만 2천여곳에 대해 중복점검을 포함해 9만 6천여 건을 점검한 결과, 방역지침 준수사항이 미흡한 10% 시설에 대해 행정지도를, 407개소에는 행정명령을 발동했다고 밝혔다.<br/><br/>    또 세계적으로 방역물품에 대한 수요가 급증하고 완제품 조달이 불확실해짐에 따라 방호복 수급을 안정화하기 위해 국내 생산 기반을 확대할 예정이라고 설명했다. <br/><br/>    정부는 지역 봉제조합 및 국내 소규모 봉제업체와 협업해 4월 155만 벌, 5월 이후 월 200만 벌 등 필요량 대부분을 국내생산으로 조달할 계획이다. 그간 방호복 조달은 국내 원단을 동남아 등 해외에서 가공한 후 국내로 수입하는 방식이었다.<br/><br/>    srchae@yna.co.kr<br/><br/><span><a href="https://media.naver.com/channel/promotion.nhn?oid=001" target="_blank">▶코로나19 속보는 네이버 연합뉴스에서 [구독 클릭]</a><br/><a href="https://www.yna.co.kr/theme-list/factcheck?input=1195s" target="_blank">▶[팩트체크] 텔레그램 '성범죄' 사실은 이렇습니다</a><a href="https://www.yna.co.kr/board/jebo/index?input=offer_naver" style="margin-left:10px;" target="_blank">▶제보하기</a></span><br/><br/>
 <!-- // 본문 내용 -->
 </div>]

2) 추출한 본문 영역에서 불필요한 부분 제거/치환

본문영역에 대한 결과 얻기

html의 id속성을 통해 가져온 원소는 그 페이지 내에서 고유한 영역을 의미하므로, select() 함수의 결과가 list라 하더라도 실제 원소는 단 하나만 존재한다.

그렇기 때문에 리스트에 대한 0번째 요소에 직접 접근해도 무관하다.

1
2
3
4
5
item = selector[0]

print(type(item))
print("-" * 50)
print(item)
▶ 출력결과
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<class 'bs4.element.Tag'>
--------------------------------------------------
<div class="_article_body_contents" id="articleBodyContents">
<!-- 본문 내용 -->
<!-- TV플레이어 -->
<!-- // TV플레이어 -->
<script type="text/javascript">
// flash 오류를 우회하기 위한 함수 추가
function _flash_removeCallback() {}
</script>
	
	완치 4천811명·격리중 4천523명…"아직은 집단감염 줄여야 할 시기"<br/><br/>실내체육시설 407개소에 행정명령…방호복 국내 생산 늘려 수급 안정화<br/><br/>(서울=연합뉴스) 채새롬 기자 = 방역당국이 국내 신종 코로나바이러스 감염증(코로나19) 발생 이후 처음으로 28일 완치자 수가 치료 중인 환자 수를 넘어섰다며, 이는 우리 사회가 축하해야 할 성과라고 평가했다. <br/><br/>    그러나 지역사회 집단 감염이 이어지는 등 코로나19 확산 상황을 안심할 수 없어 국민들이 계속해 '사회적 거리두기'에 동참해야 한다고 강조했다.<br/><br/><span class="end_photo_org"><img alt="" src="https://imgnews.pstatic.net/image/001/2020/03/28/PYH2020032307330001300_P4_20200328121308020.jpg?type=w647"><em class="img_desc">코로나19 정례브리핑하는 윤태호 방역총괄반장(세종=연합뉴스) 김주형 기자 = 윤태호 중앙사고수습본부 방역총괄반장(보건복지부 공공보건정책관)이 23일 오전 세종시 정부세종청사에서 코로나19 대응 중앙재난안전대책본부 회의 결과 등 정례브리핑을 하고 있다. 이날 브리핑은 참석한 기자 없이 비대면으로 진행했다.<br/>    정부는 4월 5일까지 '사회적 거리두기' 강화 기간에 '공무원 복무관리 특별 지침'을 시행해 공공부문에서부터 신종 코로나바이러스 감염증(코로나19) 확산 억제에 앞장서겠다고 밝혔다. 2020.3.23 kjhpress@yna.co.kr</em></img></span><br/><br/>    윤태호 중앙사고수습본부 방역총괄반장(보건복지부 공공보건정책관)은 이날 정부세종청사에서 열린 정례 브리핑에서 "오늘은 누적 확진자 수 중 완치된 확진자 수가 격리치료 중인 확진자보다 많아져 완치율 50%를 달성했다"며 "아직 갈 길은 멀지만, 완치율 50%는 우리 사회 모두가 함께 축하할 만한 자그마한 성과"라고 말했다.<br/><br/>    윤 반장은 "방역당국은 공격적인 진단검사와 역학조사를 통해 확진자와 접촉자를 찾아 격리해 감염전파를 막았고, 국민들께서는 사회적 거리두기에 적극적으로 동참했다"며 "의료진들은 찾아낸 확진환자를 안정적으로 치료하였기에 가능한 성과였다"고 설명했다.<br/><br/>    중앙방역대책본부에 따르면 이날 0시 기준 국내에서 코로나19에 걸렸다가 완치된 사람은 4천811명으로, 격리 상태에서 치료 중인 확진자 수(4천523명)를 추월했다. 올해 1월 20일 국내 첫 코로나19 환자가 발생한 지 68일 만이다. <br/><br/>    앞서 2월 18일 31번째 확진자가 나온 이후 대구·경북 지역 확진자가 급증하면서 신규 확진자 수는 800명대까지 늘고, 격리치료 중인 확진자는 이달 12일 기준 7천500명까지 증가한 바 있다. 이후 13일부터 15일 연속으로 매일 완치되는 환자가 새로 발견되는 확진자보다 많아지면서 격리치료 중인 확진자 수는 꾸준히 감소하는 추세다.<br/><br/>    그는 "다만 대구의 한 병원에서 최근 집단감염이 발생하는 등 아직 안심할 상황은 아니고, 코로나19가 확산할 수 있는 위험은 여전히 존재한다"며 "지금은 지역사회와 집단시설의 감염을 확실히 줄여나가야 할 시기"라고 진단했다. <br/><br/>    이어 "해외 유입을 막기 위해 중앙재난안전대책본부 차원에서 해외 입국자 자가격리 확대에 대해 논의하고 있다"며 "해외 입국자 수가 많은 수도권 지자체에서 입국자 전원에 대한 자가격리 조치를 검토하고 있는 것으로 알고 있다"고 말했다.<br/><br/>    윤 반장은 "코로나19 확산 저지를 위해 국민들께서 계속해서 강화된 사회적 거리두기에 참여해 주실 것을 당부드린다"며 "당분간 많은 사람이 모이는 장소는 가급적 피하고, 종교활동도 자제해야 한다. 주말이지만 가급적 집에서 머물러 주시기를 다시 한번 더 부탁드린다"고 거듭 당부했다.<br/><br/>    중앙재난안전대책본부는 이날 실내체육시설 8만 2천여곳에 대해 중복점검을 포함해 9만 6천여 건을 점검한 결과, 방역지침 준수사항이 미흡한 10% 시설에 대해 행정지도를, 407개소에는 행정명령을 발동했다고 밝혔다.<br/><br/>    또 세계적으로 방역물품에 대한 수요가 급증하고 완제품 조달이 불확실해짐에 따라 방호복 수급을 안정화하기 위해 국내 생산 기반을 확대할 예정이라고 설명했다. <br/><br/>    정부는 지역 봉제조합 및 국내 소규모 봉제업체와 협업해 4월 155만 벌, 5월 이후 월 200만 벌 등 필요량 대부분을 국내생산으로 조달할 계획이다. 그간 방호복 조달은 국내 원단을 동남아 등 해외에서 가공한 후 국내로 수입하는 방식이었다.<br/><br/>    srchae@yna.co.kr<br/><br/><span><a href="https://media.naver.com/channel/promotion.nhn?oid=001" target="_blank">▶코로나19 속보는 네이버 연합뉴스에서 [구독 클릭]</a><br/><a href="https://www.yna.co.kr/theme-list/factcheck?input=1195s" target="_blank">▶[팩트체크] 텔레그램 '성범죄' 사실은 이렇습니다</a><a href="https://www.yna.co.kr/board/jebo/index?input=offer_naver" style="margin-left:10px;" target="_blank">▶제보하기</a></span><br/><br/>
<!-- // 본문 내용 -->
</div>

불필요한 태그들 제거하기

기사에 따라 <iframe> 태그가 없는 경우도 있다. (이 태그는 주로 광고노출을 위해 사용된다.)

존재하지 않는 태그를 삭제하는 것은 아무런 문제가 되지 않으므로 기사 내용에 상관없이 수행한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for target in item.find_all('script'):
    target.extract()

for target in item.find_all('a'):
    target.extract()

for target in item.find_all('span'):
    target.extract()

for target in item.find_all('div'):
    target.extract()
    
for target in item.find_all('iframe'):
    target.extract()

item
▶ 출력결과
1
2
3
4
5
6
7
8
9
<div class="_article_body_contents" id="articleBodyContents">
<!-- 본문 내용 -->
<!-- TV플레이어 -->
<!-- // TV플레이어 -->

	
	완치 4천811명·격리중 4천523명…"아직은 집단감염 줄여야 할 시기"<br/><br/>실내체육시설 407개소에 행정명령…방호복 국내 생산 늘려 수급 안정화<br/><br/>(서울=연합뉴스) 채새롬 기자 = 방역당국이 국내 신종 코로나바이러스 감염증(코로나19) 발생 이후 처음으로 28일 완치자 수가 치료 중인 환자 수를 넘어섰다며, 이는 우리 사회가 축하해야 할 성과라고 평가했다. <br/><br/>    그러나 지역사회 집단 감염이 이어지는 등 코로나19 확산 상황을 안심할 수 없어 국민들이 계속해 '사회적 거리두기'에 동참해야 한다고 강조했다.<br/><br/><br/><br/>    윤태호 중앙사고수습본부 방역총괄반장(보건복지부 공공보건정책관)은 이날 정부세종청사에서 열린 정례 브리핑에서 "오늘은 누적 확진자 수 중 완치된 확진자 수가 격리치료 중인 확진자보다 많아져 완치율 50%를 달성했다"며 "아직 갈 길은 멀지만, 완치율 50%는 우리 사회 모두가 함께 축하할 만한 자그마한 성과"라고 말했다.<br/><br/>    윤 반장은 "방역당국은 공격적인 진단검사와 역학조사를 통해 확진자와 접촉자를 찾아 격리해 감염전파를 막았고, 국민들께서는 사회적 거리두기에 적극적으로 동참했다"며 "의료진들은 찾아낸 확진환자를 안정적으로 치료하였기에 가능한 성과였다"고 설명했다.<br/><br/>    중앙방역대책본부에 따르면 이날 0시 기준 국내에서 코로나19에 걸렸다가 완치된 사람은 4천811명으로, 격리 상태에서 치료 중인 확진자 수(4천523명)를 추월했다. 올해 1월 20일 국내 첫 코로나19 환자가 발생한 지 68일 만이다. <br/><br/>    앞서 2월 18일 31번째 확진자가 나온 이후 대구·경북 지역 확진자가 급증하면서 신규 확진자 수는 800명대까지 늘고, 격리치료 중인 확진자는 이달 12일 기준 7천500명까지 증가한 바 있다. 이후 13일부터 15일 연속으로 매일 완치되는 환자가 새로 발견되는 확진자보다 많아지면서 격리치료 중인 확진자 수는 꾸준히 감소하는 추세다.<br/><br/>    그는 "다만 대구의 한 병원에서 최근 집단감염이 발생하는 등 아직 안심할 상황은 아니고, 코로나19가 확산할 수 있는 위험은 여전히 존재한다"며 "지금은 지역사회와 집단시설의 감염을 확실히 줄여나가야 할 시기"라고 진단했다. <br/><br/>    이어 "해외 유입을 막기 위해 중앙재난안전대책본부 차원에서 해외 입국자 자가격리 확대에 대해 논의하고 있다"며 "해외 입국자 수가 많은 수도권 지자체에서 입국자 전원에 대한 자가격리 조치를 검토하고 있는 것으로 알고 있다"고 말했다.<br/><br/>    윤 반장은 "코로나19 확산 저지를 위해 국민들께서 계속해서 강화된 사회적 거리두기에 참여해 주실 것을 당부드린다"며 "당분간 많은 사람이 모이는 장소는 가급적 피하고, 종교활동도 자제해야 한다. 주말이지만 가급적 집에서 머물러 주시기를 다시 한번 더 부탁드린다"고 거듭 당부했다.<br/><br/>    중앙재난안전대책본부는 이날 실내체육시설 8만 2천여곳에 대해 중복점검을 포함해 9만 6천여 건을 점검한 결과, 방역지침 준수사항이 미흡한 10% 시설에 대해 행정지도를, 407개소에는 행정명령을 발동했다고 밝혔다.<br/><br/>    또 세계적으로 방역물품에 대한 수요가 급증하고 완제품 조달이 불확실해짐에 따라 방호복 수급을 안정화하기 위해 국내 생산 기반을 확대할 예정이라고 설명했다. <br/><br/>    정부는 지역 봉제조합 및 국내 소규모 봉제업체와 협업해 4월 155만 벌, 5월 이후 월 200만 벌 등 필요량 대부분을 국내생산으로 조달할 계획이다. 그간 방호복 조달은 국내 원단을 동남아 등 해외에서 가공한 후 국내로 수입하는 방식이었다.<br/><br/>    srchae@yna.co.kr<br/><br/><br/><br/>
<!-- // 본문 내용 -->
</div>

<br> 태그 치환

<br> 태그는 줄바꿈 문자를 의미하므로 replace_with 함수를 사용하여 개행문자(\n)로 치환한다.

1
2
3
for target in item.find_all('br'):
    target.replace_with("\n")
item
▶ 출력결과
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
32
33
34
35
36
37
38
39
40
41
42
43
<div class="_article_body_contents" id="articleBodyContents">
<!-- 본문 내용 -->
<!-- TV플레이어 -->
<!-- // TV플레이어 -->

	
	완치 4천811명·격리중 4천523명…"아직은 집단감염 줄여야 할 시기"

실내체육시설 407개소에 행정명령…방호복 국내 생산 늘려 수급 안정화

(서울=연합뉴스) 채새롬 기자 = 방역당국이 국내 신종 코로나바이러스 감염증(코로나19) 발생 이후 처음으로 28일 완치자 수가 치료 중인 환자 수를 넘어섰다며, 이는 우리 사회가 축하해야 할 성과라고 평가했다. 

    그러나 지역사회 집단 감염이 이어지는 등 코로나19 확산 상황을 안심할 수 없어 국민들이 계속해 '사회적 거리두기'에 동참해야 한다고 강조했다.



    윤태호 중앙사고수습본부 방역총괄반장(보건복지부 공공보건정책관)은 이날 정부세종청사에서 열린 정례 브리핑에서 "오늘은 누적 확진자 수 중 완치된 확진자 수가 격리치료 중인 확진자보다 많아져 완치율 50%를 달성했다"며 "아직 갈 길은 멀지만, 완치율 50%는 우리 사회 모두가 함께 축하할 만한 자그마한 성과"라고 말했다.

    윤 반장은 "방역당국은 공격적인 진단검사와 역학조사를 통해 확진자와 접촉자를 찾아 격리해 감염전파를 막았고, 국민들께서는 사회적 거리두기에 적극적으로 동참했다"며 "의료진들은 찾아낸 확진환자를 안정적으로 치료하였기에 가능한 성과였다"고 설명했다.

    중앙방역대책본부에 따르면 이날 0시 기준 국내에서 코로나19에 걸렸다가 완치된 사람은 4천811명으로, 격리 상태에서 치료 중인 확진자 수(4천523명)를 추월했다. 올해 1월 20일 국내 첫 코로나19 환자가 발생한 지 68일 만이다. 

    앞서 2월 18일 31번째 확진자가 나온 이후 대구·경북 지역 확진자가 급증하면서 신규 확진자 수는 800명대까지 늘고, 격리치료 중인 확진자는 이달 12일 기준 7천500명까지 증가한 바 있다. 이후 13일부터 15일 연속으로 매일 완치되는 환자가 새로 발견되는 확진자보다 많아지면서 격리치료 중인 확진자 수는 꾸준히 감소하는 추세다.

    그는 "다만 대구의 한 병원에서 최근 집단감염이 발생하는 등 아직 안심할 상황은 아니고, 코로나19가 확산할 수 있는 위험은 여전히 존재한다"며 "지금은 지역사회와 집단시설의 감염을 확실히 줄여나가야 할 시기"라고 진단했다. 

    이어 "해외 유입을 막기 위해 중앙재난안전대책본부 차원에서 해외 입국자 자가격리 확대에 대해 논의하고 있다"며 "해외 입국자 수가 많은 수도권 지자체에서 입국자 전원에 대한 자가격리 조치를 검토하고 있는 것으로 알고 있다"고 말했다.

    윤 반장은 "코로나19 확산 저지를 위해 국민들께서 계속해서 강화된 사회적 거리두기에 참여해 주실 것을 당부드린다"며 "당분간 많은 사람이 모이는 장소는 가급적 피하고, 종교활동도 자제해야 한다. 주말이지만 가급적 집에서 머물러 주시기를 다시 한번 더 부탁드린다"고 거듭 당부했다.

    중앙재난안전대책본부는 이날 실내체육시설 8만 2천여곳에 대해 중복점검을 포함해 9만 6천여 건을 점검한 결과, 방역지침 준수사항이 미흡한 10% 시설에 대해 행정지도를, 407개소에는 행정명령을 발동했다고 밝혔다.

    또 세계적으로 방역물품에 대한 수요가 급증하고 완제품 조달이 불확실해짐에 따라 방호복 수급을 안정화하기 위해 국내 생산 기반을 확대할 예정이라고 설명했다. 

    정부는 지역 봉제조합 및 국내 소규모 봉제업체와 협업해 4월 155만 벌, 5월 이후 월 200만 벌 등 필요량 대부분을 국내생산으로 조달할 계획이다. 그간 방호복 조달은 국내 원단을 동남아 등 해외에서 가공한 후 국내로 수입하는 방식이었다.

    srchae@yna.co.kr




<!-- // 본문 내용 -->
</div>

3) 최종 텍스트 추출

텍스트만 추출

앞뒤로 불필요한 개행문자(\n)가 포함되어 있으므로 공백제거 함수를 사용한다.

1
2
news_content = item.text.strip()
news_content
▶ 출력결과
1
'완치 4천811명·격리중 4천523명…"아직은 집단감염 줄여야 할 시기"\n\n실내체육시설 407개소에 행정명령…방호복 국내 생산 늘려 수급 안정화\n\n(서울=연합뉴스) 채새롬 기자 = 방역당국이 국내 신종 코로나바이러스 감염증(코로나19) 발생 이후 처음으로 28일 완치자 수가 치료 중인 환자 수를 넘어섰다며, 이는 우리 사회가 축하해야 할 성과라고 평가했다. \n\n    그러나 지역사회 집단 감염이 이어지는 등 코로나19 확산 상황을 안심할 수 없어 국민들이 계속해 \'사회적 거리두기\'에 동참해야 한다고 강조했다.\n\n\n\n    윤태호 중앙사고수습본부 방역총괄반장(보건복지부 공공보건정책관)은 이날 정부세종청사에서 열린 정례 브리핑에서 "오늘은 누적 확진자 수 중 완치된 확진자 수가 격리치료 중인 확진자보다 많아져 완치율 50%를 달성했다"며 "아직 갈 길은 멀지만, 완치율 50%는 우리 사회 모두가 함께 축하할 만한 자그마한 성과"라고 말했다.\n\n    윤 반장은 "방역당국은 공격적인 진단검사와 역학조사를 통해 확진자와 접촉자를 찾아 격리해 감염전파를 막았고, 국민들께서는 사회적 거리두기에 적극적으로 동참했다"며 "의료진들은 찾아낸 확진환자를 안정적으로 치료하였기에 가능한 성과였다"고 설명했다.\n\n    중앙방역대책본부에 따르면 이날 0시 기준 국내에서 코로나19에 걸렸다가 완치된 사람은 4천811명으로, 격리 상태에서 치료 중인 확진자 수(4천523명)를 추월했다. 올해 1월 20일 국내 첫 코로나19 환자가 발생한 지 68일 만이다. \n\n    앞서 2월 18일 31번째 확진자가 나온 이후 대구·경북 지역 확진자가 급증하면서 신규 확진자 수는 800명대까지 늘고, 격리치료 중인 확진자는 이달 12일 기준 7천500명까지 증가한 바 있다. 이후 13일부터 15일 연속으로 매일 완치되는 환자가 새로 발견되는 확진자보다 많아지면서 격리치료 중인 확진자 수는 꾸준히 감소하는 추세다.\n\n    그는 "다만 대구의 한 병원에서 최근 집단감염이 발생하는 등 아직 안심할 상황은 아니고, 코로나19가 확산할 수 있는 위험은 여전히 존재한다"며 "지금은 지역사회와 집단시설의 감염을 확실히 줄여나가야 할 시기"라고 진단했다. \n\n    이어 "해외 유입을 막기 위해 중앙재난안전대책본부 차원에서 해외 입국자 자가격리 확대에 대해 논의하고 있다"며 "해외 입국자 수가 많은 수도권 지자체에서 입국자 전원에 대한 자가격리 조치를 검토하고 있는 것으로 알고 있다"고 말했다.\n\n    윤 반장은 "코로나19 확산 저지를 위해 국민들께서 계속해서 강화된 사회적 거리두기에 참여해 주실 것을 당부드린다"며 "당분간 많은 사람이 모이는 장소는 가급적 피하고, 종교활동도 자제해야 한다. 주말이지만 가급적 집에서 머물러 주시기를 다시 한번 더 부탁드린다"고 거듭 당부했다.\n\n    중앙재난안전대책본부는 이날 실내체육시설 8만 2천여곳에 대해 중복점검을 포함해 9만 6천여 건을 점검한 결과, 방역지침 준수사항이 미흡한 10% 시설에 대해 행정지도를, 407개소에는 행정명령을 발동했다고 밝혔다.\n\n    또 세계적으로 방역물품에 대한 수요가 급증하고 완제품 조달이 불확실해짐에 따라 방호복 수급을 안정화하기 위해 국내 생산 기반을 확대할 예정이라고 설명했다. \n\n    정부는 지역 봉제조합 및 국내 소규모 봉제업체와 협업해 4월 155만 벌, 5월 이후 월 200만 벌 등 필요량 대부분을 국내생산으로 조달할 계획이다. 그간 방호복 조달은 국내 원단을 동남아 등 해외에서 가공한 후 국내로 수입하는 방식이었다.\n\n    srchae@yna.co.kr'

4) 추출 결과를 텍스트로 저장

1
2
with open("네이버뉴스.txt", "w", encoding="utf-8") as f:
    f.write(news_content)
Rating:

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[Python 데이터 수집] 웹 페이지 컨텐츠 수집≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

comments powered by Disqus