2024년 6월 22일 토요일

웹크롤링- 웹 스크래핑

 관련 전문용어 설명

웹 크롤링(Web Crawling): 웹 페이지를 방문하여 자동으로 데이터를 추출하는 프로세스

Jsoup: Java 라이브러리로 HTML 문서를 파싱하고, 데이터를 추출하며, 문서를 조작할 수 있도록 도와줍니 다.

Document: Jsoup에서 파싱된 HTML 문서 전체를 나타내는 클래스



Elements: Jsoup에서 특정 쿼리에 일치하는 HTML 요소들의 집합을 나타내는 클래스입니다.


Google Colab

네이버 뉴스 분야별 기사 제목 모두를 가져와서, 기사 제목에서 불필요한 단어들 제거하고(불용어)정리된 단어들 빈도 수 분석하여 워드 클라우드로 시각화해줘/또 데이터베이스 테이블 생성 후 한시간에 한번씩 데이터 자동 저장하는 웹크롤링하는 코드를 셍성해줘

-----------------------------------------------------------------



네이버 뉴스 기사 제목을 크롤링하고, 불필요한 단어를 제거하여 빈도 수 분석 후 워드 클라우드로 시각화하는 작업은 흥미로운 과제입니다! 이를 위해 파이썬과 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.


----------------------------------------------------------------------








스크래핑이라고도 하며, 컴퓨터 소프트웨어 기술로 각종 사이트들에서
원하는
정보를 추출하는





웹크롤링 https://kmong.com/category/645?utm_source=naver_sa_po_pc&utm_campaign=6&utm_group=grp-a001-01-000000027940591&utm_term=%EC%9B%B9%ED%81%AC%EB%A1%A4%EB%A7%81%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8&utm_content=2category&n_media=335738&n_query=%EC%9B%B9%ED%81%AC%EB%A1%A4%EB%A7%81%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8&n_rank=2&n_ad_group=grp-a001-01-000000027940591&n_ad=nad-a001-01-000000276187889&n_keyword_id=nkw-a001-01-000004645558455&n_keyword=%EC%9B%B9%ED%81%AC%EB%A1%A4%EB%A7%81%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8&n_campaign_type=1&n_ad_group_type=1&n_match=1&NaPm=ct%3Dlwaavzh4%7Cci%3D0yS00027YinAHzUKlf07%7Ctr%3Dsa%7Chk%3D160012a46f0b031d9e9bf54a36bd7fb73d8c9db7

파이썬 웹 크롤링을 활용한 데이터 수집

과정명

파이썬 웹 크롤링을 활용한 데이터 수집

과정설명

본 과정은 웹 데이터의 구조를 분석하고, 필요한 정보를 웹에서 추출하여 컴퓨터 파일로 저장하는 방법을 파이썬으로 학습한다. 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


 크롤러 (스파이더)는 주로 Google, Bing 등의 검색 엔진에서 운영하는 일종의 봇입니다. 이들의 목적은 인터넷 전반에 걸쳐 웹 사이트의 컨텐츠를 색인화하여 해당 웹 사이트를 검색 엔진 결과에 나타내도록 하는 것입니다.
www.cloudflare.com/ko-kr/learning/bots/what-is-a-web-crawler/
www.cloudflare.com/ko-kr/learning/bots/what-is-a-web-crawler/



      




















































































댓글 없음:

예정공정표_엑셀프로그램 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...