반응형

전체 글 250

Crawling in Python(request, BeautifulSoup, Selenium) (1)

Python에서 Beautiful Soup과 Selenium으로 Crawling하는 방법 먼저 Crawling이란? 컴퓨터 소프트웨어 기술로 웹 사이트들에서 원하는 정보를 추출하는 것이다. 웹사이트도 코드로 짜여져있기때문에 어느정도 정형화되어있다. 이러한 규칙들을 기반으로 원하는 정보만 추출하는 것이 바로 웹 크롤링이다. 뉴스 기사 웹페이지에서 기사 제목이나 기사 내용들을 수집한다던가, SNS에서 포스팅 내용, 좋아요 수 등을 수집하는 것 모두 크롤링이라 할 수 있다. 이를 Python으로 진행해 볼건데, 가장 대표적인 Library가 Beautiful Soup과 Selenium이다. 두 라이브러리로 본격 크롤링을 하기 전에 웹이 어떻게 구성되어있는지를 먼저 알아보겠다. 다음은 많이 보는 네이버 웹페이지..

Python/Crawling 2023.02.21

Isolation Forest (for Anomaly Detection)

Anormaly Detection 방법 중 하나인 Isolation Forest에 대해 알아보겠다. IF(= Isolation Forest)는 Unsupervised Anomaly Detection 중 하나이며, Novelty 보다는 Outlier Detection 방법이다. Anomaly Detection이 무엇인지, Label에 따라 Supervised, Unsupervised, Semi-Supervised Learing, Abnormal의 종류인 Novelty, Outlier 등 기본적인 것들은 이전 포스팅에 설명해놓았다. 2021.05.12 - [AI/Anomaly Detection] - Anomaly Detection by Auto Encoder Anomaly Detection by Auto E..

[Python - 프로그래머스] 코딩테스트 연습 > 탐욕법(Greedy) > 섬 연결하기

[Python - 프로그래머스] 코딩테스트 연습 > 탐욕법(Greedy) > 섬 연결하기 https://school.programmers.co.kr/learn/courses/30/lessons/42861# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 def solution(n, costs): # cost가 작은 기준으로 sort costs.sort(key = lambda x:x[2]) print(costs) # 가장 cost가 작은 거 부터 시작 bri..

[Python - 프로그래머스] 코딩테스트 연습 > 완전탐색 > 모음사전

[Python - 프로그래머스] 코딩테스트 연습 > 완전탐색 > 모음사전 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 d = dict() d['A'] = 0 d['E'] = 1 d['I'] = 2 d['O'] = 3 d['U'] = 4 def solution(word): if len(word)

[Python - 프로그래머스] 코딩테스트 연습 > 완전탐색 > 전력망을 둘로 나누기

[Python - 프로그래머스] 코딩테스트 연습 > 완전탐색 > 전력망을 둘로 나누기 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 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 31 import copy def connect(temp, k) : global c c.append(k) tk = temp[k] tk = list(set..

[Python - 프로그래머스] 코딩테스트 연습 > 완전탐색 > 피로도

https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import itertools def solution(k, dungeons): li = list(itertools.permutations(dungeons)) # print(li) cnt = list() for i in range(len(li)) : c = 0 k_ = k for j in li[i] : ..

[Python - 프로그래머스] 코딩테스트 연습 > 완전탐색 > 최소직사각형

https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 1 2 3 4 5 6 7 8 def solution(sizes): for i in sizes : if i[0]

[Python - 프로그래머스] 힙(Heap) > 디스크 컨트롤러

https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 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 31 32 33 import heapq import numpy as np def solution(jobs): time1 = heapq.nlargest(len(jobs), jobs, key=lambda x: (x[0], x[1])) # 작업..

[Python - 프로그래머스] 스택/큐 > 올바른 괄호

문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. Solution 대표적인 스택/큐 문제이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 def solution(s): s ..

[Python - 프로그래머스] 힙(Heap) > 더 맵게

https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 이 문제는 사실 효율성이 더 중요한 문제다. 주어진 테스트 케이스를 모두 통과해도 효율성 테스트에서 실패하는 경우가 많다. 문제에도 나와있지만 heap으로 풀면된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import heapq def solution(scoville, K): heapq.heapify(scoville) # list to heap cnt = 0 w..

반응형