일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ChatGPT
- 유튜브자막 추출하는법
- Zoom자막
- 나타나지 않을 때
- Raytune
- GridSerarchCV
- JAVA EE Integration
- 하이퍼파라미터최적화
- deepseek
- 노션 countif
- 새싹LLM강의
- 유튜브자막다운로드
- 안지워지는이유
- hyperparameter-optimization
- 영상 자막 추출
- 개발자도구로 영상자막 다운받는법
- 테스트데이터
- SeSAC
- RandomSearchCV
- 딥시크
- LLM
- 도봉1기
- (도봉 SW 1기) LLM 활용 인공지능 서비스 개발자 양성과정
- Zoom 자막 추출
- randomstate
- 도봉1기llm
- Optuna
- One-Hot encoding
- Zoom 영상 자막 다운
- 유튜브자막 추출
- Today
- Total
잇연
[sesac LLM] day12-240117 웹크롤링, 인코딩, 디코딩 본문
웹크롤링
웹 크롤링(Web Crawling)이란?
- 웹 크롤링은 웹 페이지를 자동으로 요청하여 원하는 정보만 취득하는 기술
- 크롤러(Crawler)라가 웹 페이지를 순회하며 데이터를 수집하고 저장한다.
- 구글은 전세계에서 가장 열심히 웹 크롤링을 하는 회사 중 하나이다
웹 크롤링으로 뭘 할 수 있나?
- 뉴스 수집
- 쇼핑몰 상품 가격 추적
- 강의 계획서 모으기 등등
주요 사이트별 정책 가이드라인
일부 웹 사이트는 크롤링을 금지하거나 사용량에 제한을 두고 있다. robots.txt 파일 을 꼭 확인하세요.
- 구글의 크롤링 정책 보기 https://www.google.com/robots.txt
- 네이버의 크롤링 정책 보기 https://www.naver.com/robots.txt
서버사이드 렌더링 방식 & 클라이언트 사이드 렌더링 방식
서버사이드렌더링(SSR) 이란?
웹 페이지의 콘텐츠가 서버에서 생성되어 완성된 형태로 브라우저에 전송되는 방식 초기 로딩 시간이 빠르고 SEO(검색엔진 최적화)에 유리
- 비유) 가구를 모두 조립한 상태로 배송해 주는 방식. 그러다보니 가구의 새로운 부품이 필요 하면 매번 다시 보내줘야 함.
- 예시) Wikipedia
## 서버사이드렌더링 방식의 페이지를 크롤링 할 때 고려해야 하는 것은?
- HTML 소스에 직접 접근이 가능해 HTML 을 파싱하여 데이터를 쉽게 수집할 수 있음.
- 동적으로 로딩되는 데이터는 존재하지 않기 때문에 추가 처리 필요 없음.
HTML 파싱을 위해 노드를 특정하는 방법이 필요한데, 이 때 필요한 것이 Xpath 또는 CSS Selector
클라이언트 사이드 렌더링 방식(CSR)이란 ?
- 서버에서는 최소한의 HTML 페이지만을 전송하고, JavaScript를 통해 클라이언트(브라우저)에서 콘텐츠를 렌더링하는 방식
- 사용자 경험 향상을 위해 사용되지만 초기 로딩 시간이 길어질 수 있음
- 비유) 가구에서 필요할 것 같은 부품과 기능들을 모두 한번에 보내줌. 그러다 보니 조립하는 시간이 많이 필요하지만, 추가 기능을 위해서 새로 요청할 필요는 없음.
- 예시) 네이버 Vibe 리액트는 왜 대세가 되었을까?> csr 때문
- JavaScript가 실행되고 난 후의 동적인 데이터를 수집하기 위해서는 별도의 도구(예: Selenium) 필요
- 웹 페이지가 완전히 로드될 때까지 기다려야 하며, AJAX 요청을 처리하는 로직 필요데이터가 필요하면, 미리 렌더링해서 보내는 것이 아니라 그 때 그 때 서버에 호출한다.
- python의 requests 모듈을 이용한 웹 크롤링 sesac-project 에 코드 있음.
Python with open 문법 사용방법
- with open 문법은 파일을 다룰 때 자주 쓰이는데, 파일을 열고 자동으로 닫아주는 기능이 있다.
- 이게 편리한 이유는 파일을 열었으면 반드시 닫아줘야 하는데 with 구문을 쓰면 이걸 자동으로 처리해 준다.
- 기본 사용법
#파일읽기
with open('example.txt', 'r') as f:
content = f.read()
print(content)
#파일쓰기
with open('example.txt', 'w') as f:
f.write('안녕, 도봉아!')
인코딩이 무엇인가?
- 인코딩은 데이터를 특정 형식으로 변환하는 과정
- 인코딩의 반댓말은 디코딩 문자 인코딩은 문자를 컴퓨터에서 입출력 할 때, 어떻게 입출력할지 약속한 것!
주요 문자 인코딩 방식
ASCII (American Standard Code for Information Interchange)
- 7비트 인코딩 방식.
- 영어 알파벳, 숫자, 기본 특수문자 표현 가능.
- 컴퓨터가 탄생한 초창기 때만 하더라도 이 방식으로 괜찮았다.
UTF-8 (Unicode Transformation Format - 8-bit)
- 가변 길이 인코딩 방식 (1~4바이트).
- 모든 유니코드 문자를 표현할 수 있어, 국제적으로 가장 널리 사용됨.
- 이모지도 유니코드다!
인코딩과 디코딩
인코딩(Encoding): 문자를 바이트로 변환하는 과정. 디코딩(Decoding): 바이트를 문자로 변환하는 과정.
- 인코딩 사용 예시 Python에서는 문자열을 바이트로 변환할 때 인코딩을 지정할 수 있다.
#문자열 인코딩
text = "안녕하세요!"
encoded_text = text.encode('utf-8')
#바이트 디코딩
decoded_text = encoded_text.decode('utf-8')
인코딩 관련 문제 해결
인코딩오류: 다른 인코딩으로 인코딩된 문자열을 잘못된 인코딩으로 해석할 때 발생. 해결 방법: 데이터의 인코딩 형식을 확인하고 올바른 인코딩을 사용하여 해석 해야 한다. 보 통은 인코딩 에러가 있음을 알려준다.
실습
# 필요한 라이브러리 임포트
import requests
from lxml import html
from IPython.display import Image, display
president_img_url = '<https://www.president.go.kr/assets/images/president/intro_president.png>'
president_img = requests.get(president_img_url).content
#display(Image(president_img))
print(president_img)
<설명> 원하는대로 이미지의 출력 형식을 지정가능.
페이지랭크란?
페이지랭크(PageRank)는 웹 페이지의 중요성을 평가하는 알고리즘으로, 구글의 창립자인 래리 페이지(Larry Page)와 세르게이 브린(Sergey Brin)이 개발했습니다. 이 알고리즘은 인터넷의 웹 페이지를 검색 결과에서 어떻게 순위를 매길지 결정하는 데 사용됩니다.
페이지랭크의 핵심 아이디어는 "웹 페이지의 중요성은 해당 페이지로의 링크 수에 의해 결정된다"는 것입니다. 하지만 모든 링크가 동등하게 취급되지는 않습니다. 다른 중요한 페이지로부터 링크를 받은 페이지는 더 높은 점수를 받습니다.
페이지랭크 알고리즘의 주요 특징은 다음과 같습니다:
- 링크 분석: 웹 페이지가 다른 페이지로부터 받는 인바운드 링크(들어오는 링크)를 분석합니다. 많은 인바운드 링크를 받을수록 페이지는 더 중요하다고 간주됩니다.
- 품질 가중치: 모든 링크가 같은 가치를 갖지는 않습니다. 높은 페이지랭크를 가진 페이지로부터의 링크는 더 큰 가중치를 갖습니다.
- 반복 계산: 페이지랭크는 반복적인 계산을 통해 수렴합니다. 각 반복에서 모든 페이지의 랭크는 연결된 페이지들의 랭크에 기반하여 재계산됩니다.
- 무작위 서핑 모델: 사용자가 무작위로 링크를 클릭하여 웹을 탐색한다는 가정하에, 어떤 페이지가 방문될 확률을 계산합니다. 이 모델은 링크 구조뿐만 아니라 사용자의 행동 양식도 고려합니다.
페이지랭크 알고리즘은 기본적으로 페이지의 중요도를 숫자로 표현하며, 이 숫자는 해당 페이지로의 링크들과 그 링크들이 있는 페이지의 중요도에 의해 결정됩니다. 예를 들어, 많은 중요한 페이지들이 특정 페이지로 링크를 걸고 있다면, 그 페이지의 페이지랭크는 높아집니다.
페이지랭크는 복잡한 웹 환경에서 가장 관련성 높은 정보를 찾는 데 도움을 줄 수 있는 강력한 도구입니다. 구글 검색 엔진의 초기 성공 요인 중 하나이며, 검색 엔진 최적화(SEO)와 관련된 많은 전략에 영향을 미쳤습니다.
'SESAC LLM 개발자 강의 > Python' 카테고리의 다른 글
[sesac LLM] day11-240113 Pandas, DataFrame, Series (0) | 2024.01.16 |
---|---|
[sesac LLM] day10-240113 GET, POST (0) | 2024.01.16 |
[sesac LLM] day9-240112 Git, Class (0) | 2024.01.12 |
[sesac LLM] day8-240111 Python 모듈 (0) | 2024.01.12 |
[sesac LLM] day7-240110 Python 함수, 스코프, 데코레이터 (0) | 2024.01.10 |