2024년 6월 22일 토요일

파이슨 (웹크롤링*인공지능) - VSCode - Google Colab - Python

 


파이슨 크롤링  -  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

실습 프로젝트

ㆍ실습 예제 구현

ㆍ개인 프로젝트 구현

 

예정공정표_엑셀프로그램 V41 / 공정관리 무료 프로그램 / 데이터 분석-pinterest 실시간모니터링 샘플

 프리킥 /  https://kr.freepik.com/vectors/%EA%B3%B5%EC%A0%95-%EA%B4%80%EB%A6%AC 1.  통합내역프로그램 다운로드(XCOST professional)   http://xcost.me/bbs/boa...