파이슨 크롤링 - https://m.blog.naver.com/rlarbtjq7913/221719844361
https://www.bing.com/search?q=Python&form=NPNEW1
1. 과정 개요 |
과정명 | 파이썬 웹 크롤링을 활용한 데이터 수집 |
과정설명 | 본 과정은 웹 데이터의 구조를 분석하고, 필요한 정보를 웹에서 추출하여 컴퓨터 파일로 저장하는 방법을 파이썬으로 학습한다. HTML을 기반으로 한 웹 데이터 처리 기술을 익히며, 파이썬의 웹데이터 수집 패키지를 이용하여 웹 데이터를 효율적으로 추출하고 저장하는 방법을 학습한다. |
학습목표 | • 웹페이지의 구조와 동작 방식을 이해하고 수집할 수 있음 • 파이썬의 웹데이터 수집 패키지를 활용할 수 있음 • 수집 데이터를 구조화하고 향후 분석의 기초자료로 활용할 수 있음 |
학습대상 | • 예비 데이터 분석가 • 전공자 • 중급자 |
과정수준 | 난이도 | NCS Level (1~8) (※검정색으로 표기) |
( )초급 ( O )중급 ( )고급 | |
활용도구 | SW명 (3개 이상인 경우, 줄 추가하여 작성) | 버전 (필수작성) | HW명 (3개 이상인 경우, 줄 추가하여 작성) | 버전 (필수작성) |
Python | 3.8.0 | 실습용 컴퓨터 | |
VSCode | 1.84.2이상 | | |
Google Colab | | | |
-
Python : https://www.python.org/-Google Colab : https://colab.research.google.com/
---------------------------관련 전문용어 설명
웹 크롤링(Web Crawling): 웹 페이지를 방문하여 자동으로 데이터를 추출하는 프로세스.
Jsoup: Java 라이브러리로 HTML 문서를 파싱하고, 데이터를 추출하며, 문서를 조작할 수 있도록 도와줍니 다.
Document: Jsoup에서 파싱된 HTML 문서 전체를 나타내는 클래스입니다.
Elements: Jsoup에서 특정 쿼리에 일치하는 HTML 요소들의 집합을 나타내는 클래스입니다.
-------------------------------
●컴퓨터의 기능은 갈수록 다양해지고 세분화되어가고 있다. 컴퓨터 연구가들 은 더 빠르고 성능이 좋은 하드웨어와 소프트웨어를 개발하고 있다. 소프트 웨어 연구는 단순히 자료를 다루는 것이 아니라 스스로 판단까지 할 수 있는 인공지능의 개발에 집중되고 있다. 컴퓨터를 더 작게 만들기 위한 노력도 계 속되고 있다. 전문가들은 대부분 가까운 미래에도 집적회로로 만든 컴퓨학 적 컴퓨터가 생산되고, 단위분자에 데이터를 저장할 수 있게 될 것이라고 예 측한다. 분자저장 시스템을 이용하면 책 한 권도 안 되는 작은 공간에 인류의 모든 지식을 저장할 수 있다https://www.dongascience.com/news.php?idx=44254 https://ghoney99.tistory.com/m/
#print(wb.sheetnames)
https://www.dongascience.com/news.php?idx=44254
프론트엔드 (클라이언트)/(서버) 백엔드/코딩분야/테이터/임베디드
보안(HTML,CSS JS)파이썬(Djang 이, 자바.빅데이터, AI 가속 SQL...
하드웨어와언 동감웨어백신, 모의해킹 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 코미 디인 <MONTY PYTHON'S FLYING CIRCUS>에서 따온 것이다. 이름에서 고대신화에 나 오는 커다란 뱀을 연상하는 경우도 있겠지만, 이와는 무관하다. 다만 로고에는 뱀 두마리 가 형상화되어 있다.
• 파이썬은 비영리의 파이썬 소프트웨어 재단이 관리하는 개방형, 공동체 기반 개발 모델을 가지고 있다.python파이썬에서 엑셀 다루기
외부 라이브러리 : 직접설치OPENPYXL엑셀 자동화 라이브러리Pip 라이브러리를 관리해 주는 프로그램PIP INSTALL OPENPYXL 실행IMPORT OPENPYXL 선언PANDAS데이터분석 라이브러리DATA FRAME 형태로 사용PIP INSTALL PANDAS 실행IMPORT PANDAS 선언
파이썬에서 엑셀 다루기Pip listC 외부 라이브러리 : 직접설치NUMPY(수학, 과학연산, 함수)MATPLOTLIB(데이터 시각화, 차트)XLWINGS(엑셀셀자동화)PYQT5(GUI개발라이브러리)PYAUTOGUI(마우스, 키보드지동화 라이브러리)SELENIUM(웹사이트 자동화 라이브러리)GooglepythonPYTHON 설치Windows 사용자
네이버 뉴스 분야별 기사 제목 모두를 가져와서, 기사 제목에서 불필요한 단어들 제거하고(불용어)
정리된 단어들 빈도 수 분석하여 워드 클라우드로 시각화해줘/
또 데이터베이스 테이블 생성 후 한시간에 한번씩 데이터 자동 저장하는 웹크롤링하는 코드를 셍성해줘
-----------------------------------------------------------------
네이버 뉴스 기사 제목을 크롤링하고, 불필요한 단어를 제거하여 빈도 수 분석 후 워드 클라우드로 시각화하는 작업은 흥미로운 과제입니다! 이를 위해 파이썬과 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 라이브러리를 사용하여 웹 페이지에서 복잡한 데이터를 추출하는 방법을 다룹니다.
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.
----------------------------------------------------------------------
2. 과정 내용 |
차시 | 차시명 | 차시내용 | 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 | 실습 프로젝트 | ㆍ실습 예제 구현 ㆍ개인 프로젝트 구현 | |