전체 글 333

웹 스크래핑과 웹 크롤링

웹 스크래핑 특정한 목적으로 특정 웹 페이지에서 데이터를 추출하는 것 -> 데이터 추출 Ex_) 날씨 데이터 가져오기, 주식 데이터 가져오기 웹 크롤링 URL을 타고 다니며 반복적으로 데이터를 가져오는 과정 -> 데이터 색인 (indexing) Ex_) 검색 엔진의 웹 크롤러 로봇 배제 프로토콜 (REP) 로봇이 모든 사이트에 대해 모든 정보를 취득하는 것을 막기 위함 1994년, REP (Robot Exclusion Protocol) 탄생 설정을 통해 접근 권한 # 모든 user-agent에 대해서 접근 거부 User-agent: * Disallow: / # 모든 user-agent에 대해서 접근 허가 User-agent: * allow: / # 특정 user-agent에 대해서 접근 불허 User-a..

HTML (Hypertext Markup Language)

HTML (Hypertext Markup Language) 웹 브라우저가 이해할 수 있는 "언어" # 문서 버전 # HTML 문서 시작 선언 및 기본 언어 설정 # 실제 사용자가 눈으로 볼 수 있는 문서의 내용이 입력되는 곳 안녕하세요~ # 주석처리 Body - 실제로 사용가자 눈으로 보는 내용 입력 block - 레고처럼 차곡차곡 쌓이고 화면 너비가 꽉 차는 요소 블록의 크기를 조정 가능하고, 페이지의 구조적 요소를 나타냄 인라인 요소를 포함할 수 있으나, 인라인 요소에 포함될 수 없음 , , 등이 있음 inline - 블록 요소 내에 포함되는 요소 문장, 단어 같은 작은 부분에 사용, 한 줄에 나열 좌/우에 여백을 넣는 것만 허용 , , 등이 있음 inline-block - 글자처럼 취급되나, blo..

DFS/BFS (Depth-First Search / Breadth-Frist Search)

DFS (Depth - First Search) 깊이 우선 탐색으로, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 스택 (Stack) 을 사용하여 표현 동작과정 탐색 시작 노드를 스택에 push하고 방문 처리 스택의 최상단 노드에 방문하지 않은 인접 노드가 있다면 그 인접 노드를 스택에 넣고 방문 처리 - 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼냄 위의 과정을 더 이상 수행할 수 없을 때까지 반복 코드 구현 graph = { 1: [2, 5, 9], 2: [3], 3: [4], 4: [], 5: [6, 8], 6: [7], 7: [], 8: [], 9: [10], 10: [] } def recursive_dfs(v, visited = []): visited.append(v) #..

해시 (Hash)와 람다 (Lambda)

해시 (Hash) 키 (key)와 값 (value)를 매핑하여 데이터를 저장하는 자료구조 (python에서는 기본으로 제공되는 딕셔너리 자료형이 해시 테이블의 구조) 해시 테이블은 해시 함수를 사용해 색인 (index)을 버킷 (bucket)이나 슬롯 (slot)의 배열로 계산 데이터를 다루는 기법 중 하나로 데이터 검색과 저장이 빠르게 진행 용어 키 (key) - 고유의 값으로 해시 함수의 input이고, 다양한 길이를 가짐 해시 테이블 (Hash table) 또는 해시 맵 (Hash map) - key 와 value를 매핑하여 데이터를 저장하는 자료구조 해시 함수 (Hash function) - 임의의 값을 고정된 길이의 데이터로 변환하는 함수. 다양한 길이의 키를 고정된 길이의 해시로 변환하여 저장..

큐 (Queue)와 트리 (Trees), 힙 (Heaps)

큐 (Queue) 자료를 보관할 수 있는 선형 구조 스택 (stack)과는 달리, 한 쪽에서 자료를 넣으면 자료를 넣은 쪽이 아닌 반대 쪽에서 자료를 뽑아야 함 (자료를 넣는 것 : 인큐연산(enqueue), 자료를 빼는 것 : 디큐연산 (dequeue)) 선입선출 형태의 자료구조 (FIFO : First in First out) 구현 방법 배열 : python리스트와 메서드를 사용 연결 리스트 : 양방향 연결 리스트 사용 (Doubly Linked List) 기초 연산 동작 size() - 현재 큐에 들어가 있는 데이터 원소의 수를 구함 isEmpty() - 현재 큐가 비어있는지를 판단 enqueue(x) - 데이터 원소 x를 추가 dequeue() - 큐의 맨 앞에 저장된 데이터 원소를 반환하고 제거..

728x90