관련 전문용어 설명
웹 크롤링(Web Crawling): 웹 페이지를 방문하여 자동으로 데이터를 추출하는 프로세스
Jsoup: Java 라이브러리로 HTML 문서를 파싱하고, 데이터를 추출하며, 문서를 조작할 수 있도록 도와줍니 다.
Document: Jsoup에서 파싱된 HTML 문서 전체를 나타내는 클래스
Elements: Jsoup에서 특정 쿼리에 일치하는 HTML 요소들의 집합을 나타내는 클래스입니다.
네이버 뉴스 분야별 기사 제목 모두를 가져와서, 기사 제목에서 불필요한 단어들 제거하고(불용어)정리된 단어들 빈도 수 분석하여 워드 클라우드로 시각화해줘/또 데이터베이스 테이블 생성 후 한시간에 한번씩 데이터 자동 저장하는 웹크롤링하는 코드를 셍성해줘
-----------------------------------------------------------------
네이버 뉴스 기사 제목을 크롤링하고, 불필요한 단어를 제거하여 빈도 수 분석 후 워드 클라우드로 시각화하는 작업은 흥미로운 과제입니다! 이를 위해 파이썬과 BeautifulSoup을 사용하여 네이버 뉴스에서 기사 제목을 추출하고, 불용어를 제거한 뒤 빈도 수를 분석하겠습니다. 또한, 데이터베이스 테이블을 생성하고 한 시간마다 데이터를 자동으로 저장하는 웹 크롤링 코드도 작성하겠습니다.
먼저, 네이버 뉴스 기사 제목을 크롤링하는 코드를 보여드리겠습니다. 아래는 파이썬 코드 예시입니다:
Python
# 필요한 라이브러리 임포트
import requests
from bs4 import BeautifulSoup
# 네이버 뉴스 URL 설정
url = "https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=100"
# 페이지 요청
response = requests.get(url)
# HTML 파싱
soup = BeautifulSoup(response.content, "html.parser")
# 기사 제목 추출
titles = soup.select(".cluster_text_headline > a")
for title in titles:
print(title.text)
AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.
이 코드를 실행하면 네이버 뉴스의 최신 기사 제목을 가져올 수 있습니다. 이후 불용어를 제거하고 빈도 수를 분석하여 워드 클라우드로 시각화하는 작업을 추가로 수행하겠습니다. 데이터베이스 테이블 생성과 웹 크롤링 코드도 함께 작성하겠습니다.
-----------------------------------------------------------------
물론! 웹 크롤링은 다양한 방법으로 구현할 수 있습니다. 여기서는 몇 가지 예제를 소개해 드리겠습니다.
1. **간단한 웹 페이지 크롤링 (Python, BeautifulSoup)**:
- 이 예제에서는 Python과 BeautifulSoup 라이브러리를 사용하여 웹 페이지에서 특정 데이터를 추출하는 기본적인 크롤링을 구현합니다.
- 아래는 클리앙 중고장터에서 아이패드 관련 제목을 크롤링하는 코드 예시입니다:
```python
from bs4 import BeautifulSoup
import urllib.request
import re
# User-Agent 설정 (아이폰에서 사용하는 사파리 브라우저의 헤더)
hdr = {'User-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/603.1.23 (KHTML, like Gecko) Version/10.0 Mobile/14E5239e Safari/602.1'}
for n in range(0, 10):
# 클리앙 중고장터 주소
data = 'https://www.clien.net/service/board/sold?&od=T31&po=' + str(n)
# 웹 브라우저 헤더 추가
req = urllib.request.Request(data, headers=hdr)
data = urllib.request.urlopen(req).read()
page = data.decode('utf-8', 'ignore')
soup = BeautifulSoup(page, 'html.parser')
# 제목 추출
title_list = soup.find_all('span', attrs={'data-role': 'list-title-text'})
for item in title_list:
try:
title = item.text.strip()
if re.search('아이패드', title): # 아이패드 관련된 글만 출력
print(title.strip())
except:
pass
```
이 코드는 클리앙 중고장터에서 아이패드 관련 제목을 크롤링하여 출력합니다.
2. **고급 웹 크롤링 및 데이터 처리 (Java, Jsoup)**:
- 이 예제에서는 Java와 Jsoup 라이브러리를 사용하여 웹 페이지에서 복잡한 데이터를 추출하는 방법을 다룹니다.
- 예제 코드는 [여기](https://diyinfo.tistory.com/entry/%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%9B%B9-%EC%82%AC%EC%9D%B4%ED%8A%B8%EC%97%90%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EC%88%98%EC%A7%91%ED%95%98%EB%8A%94-%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%98%88%EC%A0%9C)에서 확인하실 수 있습니다.
3. **웹 스크래핑 (Python)**:
- 웹 스크래핑은 웹 페이지에서 정보를 추출하는 작업을 말합니다. 예를 들어, 검색 엔진의 웹 크롤러가 하는 일도 웹 스크래핑에 해당합니다.
- 웹 스크래핑에 대한 자세한 내용은 [여기](https://www.snugarchive.com/blog/python-web-scraping/)에서 확인하실 수 있습니다.
4. **Selenium을 이용한 웹 크롤링 (Python)**:
- Selenium은 웹 자동화 테스트 용도로 개발된 라이브러리로, 실제 브라우저를 사용하여 크롤링하는 특징이 있습니다.
- 예제 코드와 사용법은 [여기](https://jaeseokim.dev/Python/python-Selenium%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9B%B9-%ED%
원본: Copilot과의 대화, 2024. 6. 23.
(1) [Python] 파이썬 웹 크롤링 하는법 & 간단 예제 - 코딩팩토리. https://coding-factory.tistory.com/998.
(2) 웹 크롤링: 웹 사이트에서 데이터를 수집하는 크롤링 예제.. https://diyinfo.tistory.com/entry/%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%9B%B9-%EC%82%AC%EC%9D%B4%ED%8A%B8%EC%97%90%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EC%88%98%EC%A7%91%ED%95%98%EB%8A%94-%ED%81%AC%EB%A1%A4%EB%A7%81-%EC%98%88%EC%A0%9C.
(3) 파이썬 웹 크롤링? 웹 스크래핑 개념과 실습 예제 - Snug Archive. https://www.snugarchive.com/blog/python-web-scraping/.
(4) [python] Selenium을 이용한 웹 크롤링 - 간단 사용법 및 예제. https://jaeseokim.dev/Python/python-Selenium%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81-%EA%B0%84%EB%8B%A8-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%B0%8F-%EC%98%88%EC%A0%9C/.
(5) undefined. https://www.clien.net/service/board/sold?&od=T31&po=.
(6) undefined. https://blog.naver.com/ldw0811.
(7) github.com. https://github.com/papasmf1/python1006/tree/95bd71150e76bb7313646240e8e1da2ab867f726/%ED%81%B4%EB%A6%AC%EC%95%99%EC%A4%91%EA%B3%A0%EC%9E%A5%ED%84%B0%EA%B2%80%EC%83%89.py.
(8) github.com. https://github.com/yurimkim1/python0802/tree/6e84443a3aabec9db351bf4b68d2340b66ee5796/%ED%81%B4%EB%A6%AC%EC%95%99%EC%A4%91%EA%B3%A0%EC%9E%A5%ED%84%B0%EA%B2%80%EC%83%89.py.
(9) github.com. https://github.com/Jiseon-Park/python0405/tree/251cd8bb7e2ecd27961644ec67c9258af4c4cc76/0408_05_WebData5.py.
----------------------------------------------------------------------
웹 스크래핑이라고도 하며, 컴퓨터 소프트웨어 기술로 각종 웹 사이트들에서
원하는 정보를 추출하는 것
파이썬 웹 크롤링을 활용한 데이터 수집
과정명 | 파이썬 웹 크롤링을 활용한 데이터 수집 | |||
과정설명 | 본 과정은 웹 데이터의 구조를 분석하고, 필요한 정보를 웹에서 추출하여 컴퓨터 파일로 저장하는 방법을 파이썬으로 학습한다. HTML을 기반으로 한 웹 데이터 처리 기술을 익히며, 파이썬의 웹데이터 수집 패키지를 이용하여 웹 데이터를 효율적으로 추출하고 저장하는 방법을 학습한다. | |||
학습목표 | • 웹페이지의 구조와 동작 방식을 이해하고 수집할 수 있음 • 파이썬의 웹데이터 수집 패키지를 활용할 수 있음 • 수집 데이터를 구조화하고 향후 분석의 기초자료로 활용할 수 있음 | |||
학습대상 | • 예비 데이터 분석가 • 전공자 • 중급자 | |||
과정수준 | 난이도 | NCS Level (1~8) (※검정색으로 표기) | ||
( )초급 ( O )중급 ( )고급 | | |||
활용도구 | SW명 (3개 이상인 경우, 줄 추가하여 작성) | 버전 (필수작성) | HW명 (3개 이상인 경우, 줄 추가하여 작성) | 버전 (필수작성) |
Python | 3.8.0 | 실습용 컴퓨터 | | |
VSCode | 1.84.2이상 | | | |
Google Colab | | | |
차시 | 차시명 | 차시내용 | NCS능력단위요소명 (능력단위요소코드) |
1 | 강의 소개 및 환경 설정 | ㆍ강의 소개 ㆍPython, VSCode 설치 | |
2 | 웹페이지 동작 원리 이해 | ㆍ우리가 홈페이지를 보기까지 ㆍHTML, CSS, Java Script 구조 이해 | |
3 | 웹페이지 구조 분석 | ㆍ태그와 속성 이해 ㆍ브라우저 개발자도구 활용 실습 | |
4 | 파이썬 패키지 이해 | ㆍRequests 통신 실습 ㆍBeautiful Soup 통신 실습 | |
5 | 정규표현식 구현 | ㆍPython의 정규표현식 소개 ㆍ정규표현식 활용 방법 실습 | |
6 | 웹 브라우저 자동화 | ㆍ웹브라우저 자동화 기능 소개 및 실습 ㆍ다양한 웹브라우저 자동화 기능 실습 | |
7 | 다양한 통신 방식 | ㆍGET / POST 차이 실습 ㆍ동기 / 비동기 차이 실습 | |
8 | 페이징을 위한 반복처리 | ㆍ글 목록 수집과 글 본문 수집 분리 ㆍ반복문을 사용한 빅데이터 수집 실습 | |
9 | 사례 실습1 : 뉴스 | ㆍ뉴스 목록과 뉴스 본문 수집 실습 ㆍ정규표현식을 이용한 뉴스 정제 실습 | |
10 | 사례 실습2 : 공고 | ㆍ공고 목록과 공고 내용 수집 실습 ㆍ수집 자동화 처리 실습 | |
11 | 사례 실습3 : 멀티미디어 | ㆍ이미지 수집 실습 ㆍ이미지 기초 전처리 실습 | |
12 | 데이터 수집 실습 | ㆍ실습 예제 구현 ㆍ개인 프로젝트 구현 | |
13 | 실습 프로젝트 | ㆍ실습 예제 구현 ㆍ개인 프로젝트 구현 | |
선후수 과정정보 | 선수과정 (여러 개인 경우, 콤마로 구분하여 작성) | 후수과정 (여러 개인 경우, 콤마로 구분하여 작성) |
빅데이터 프로젝트를 위한 기획 방법론, 빅데이터 분석을 위한 파이썬 프로그래밍 응용 | 빅데이터 분석 기법, 데이터 전처리 실습, 텍스트 데이터 분석 실습, 데이터 시각화 이론과 라이브러리 활용, 대용량 데이터 분석 EDA, API 활용 데이터 수집 및 업무 자동화 | |
자격정보 | 빅데이터분석기사, ADsP, ADP |
댓글 없음:
댓글 쓰기