파이썬

Study/Python

Selenium을 활용한 동적 크롤링 링크 주소 가져오기

이전에는 크롤링 대상 태그를 찾고, 해당 태그의 Text 값을 불러왔다. 이번에는 Text가 아닌 크롤링한 태그의 속성값을 불러오는 방법을 정리하려 한다. 1. 상품 이동 태그 찾기 네이버 도착 보장 서비스에서는 해당 상품의 이미지, 가격 등 어느 부분을 클릭해도 해당 상품의 자세한 링크로 이동할 수 있다. 링크로 이동되는 html 태그는 a태그를 사용한다. 따라서 a태그를 가진 부분의 셀렉터를 찾아주면 된다. a태그를 Control + SHIFT + C 를 사용해서 찾아주었다. 우측의 html 문서를 보면 저번에 찾아두었던 ul 태그부터 ul > li > div > a 경로에 a태그가 존재하는 것을 확인할 수 있다. 따라서 저번에 찾아둔 경로에서 ul > li > div > a 경로를 셀렉터로 지정해 ..

Study/Python

Selenium을 활용한 네이버 쇼핑 품목 동적 크롤링

이전 게시물에서 기본 환경 세팅을 완료했다. 이번에는 셀레니움을 활용해서 최근 네이버에서 새롭게 시작한 서비스인 도착 보장 서비스의 인기 품목과 가격을 크롤링해보자. 1. 크롤링할 태그 찾기 크롤링을 하기 위해서는 원하는 품목의 위치를 찾아주어야 한다. 먼저 네이버 쇼핑 실시간 도착보장 홈페이지를 들어가 보자. 다음과 같이 품목들이 나열되어 있고, 스크롤을 하게 되면 더 많은 품목이 로드된다. 나는 css_selector를 통해 크롤링할 품목을 검색해 보았다. 먼저 F12를 통해 개발자 도구를 열어준다. 다음과 같이 개발자 도구 창을 뜬다면 크롤링할 요소를 찾아줄 도구를 선택한다. 우측 개발자 도구의 최상단 가장 왼쪽의 마우스 모양의 아이콘을 클릭해 주면 된다. (단축키 Control + Shift + ..

알고리즘/프로그래머스

[프로그래머스 / 파이썬] 2023 KAKAO BLIND RECRUITMENT 미로 탈출 명령어

프로그래머스에 존재하는 연습 문제이다. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해석 미로크기 n, m 시작 좌표 x, y 목적 좌표 r, c 이동 거리 k가 주어진다. 이동 방향은 상하좌우 4방향이며, 이동하는 경우 각각 u, d, l, r 명령어를 사용하게 된다. 시작 좌표로부터 도착 좌표까지 주어진 k의 이동거리는 일치해야 한다. 이때 이동하는 명령어가 사전순으로 가장 빠른 명령어가 될 경우를 반환하는 문제이다. ..

알고리즘/프로그래머스

[프로그래머스 / 파이썬] 2023 KAKAO BLIND RECRUITMENT 표 병합

프로그래머스에 존재하는 연습 문제이다. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/150366 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해석 50 x 50 셀을 가진 표에 대해서 UPDATE, MERGE, UNMERGE, PRINT를 수행하고 PRINT 명령을 수행했을 때의 결과를 반환하는 문제이다. 주어진 조건을 잘 읽어가면 구현을 하면 되는 문제이다! 문제 풀이 주어진 조건을 잘 읽어가며 천천히 구현한다면 쉽게 풀 수 있는 문제이다. 영역을 합치는 머지와 초기화 하는 언..

알고리즘/프로그래머스

[프로그래머스 / 파이썬] 2023 KAKAO BLIND RECRUITMENT 표현 가능한 이진트리

프로그래머스에 존재하는 연습 문제이다. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해석 이진트리가 주어진다. 이를 이진 포화트리로 바꾸었을 때 더미노드는 0, 존재하는 노드는 1로 가정하여 왼쪽부터 읽어 2진수로 변경할 수 있다. 이때 문제에서 숫자가 주어졌을 때 해당 숫자를 이진트리로 표현할 수 있는지 판단하는 문제이다. 문제 풀이 1. 자릿수 변경 먼저 이 문제를 해결하기 위해서 주어진 수를 이진수로 변경한 뒤, 이진..

알고리즘/프로그래머스

[프로그래머스 / 파이썬] 2023 KAKAO BLIND RECRUITMENT 개인정보 수집 유효기간

프로그래머스 연습문제에 존재하는 카카오 코딩테스트에 출제되었던 문제이다. 원본 문제 https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해석 현재 날짜, 약관 종류, 약관 유효기간, 약관 수집 날짜, 수집한 약관 종류가 주어진다. 약관 유효기간이 지나 파기해야할 정보를 구하는 문제이다. 문제 풀이 기본적으로 공백이나 온점을 기반으로 나누어 데이터를 다듬고 해결하는 문제이다. 모든 달의 날짜를 28일로 제한하기 때문에 쉽게 날짜로 변환할 수 ..

알고리즘/프로그래머스

[프로그래머스 / 파이썬] 테이블 해시함수

https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해석 테이블과 col, row_begin, row_end가 주어진다. 해당 변수들을 이용해 주어진 규칙에 따라 생성되는 해시함수를 구현하면 되는 문제이다. 문제 풀이 1. col번째 컬럼값 기준으로 오름차순 정렬을 한다. 이때 첫번째 컬럼값은 기본키이다. 기본키는 중복된 값을 갖지 않으며, col번째 컬럼값 기준으로 오름차순 정렬할 때 중복된 값이 존재하면 첫번째 컬럼값 기준으로 내림차순 ..

알고리즘/프로그래머스

[프로그래머스 / 파이썬] 마법의 엘리베이터

https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해석 엘레베이터가 존재하고, 민수는 주어진 storey층에 있다. 엘레베이터는 +1, -1, +10, -10, +100, -100, ... 10^c 단위로 움직일 수 있다. 엘레베이터는 지하의 층으로 갈 수 없다. 이때 가장 최소로 움직이도록 하는 값을 구하는 문제이다. 문제 풀이 문제를 보고 딱 떠오른 방법은 그리디하게 푸는 방법이였다. 1의 자리의 수부터 확인해 나가며 1에서 10이 되..

알고리즘/프로그래머스

[프로그래머스 / 파이썬] 2023 KAKAO BLIND RECRUITMENT 이모티콘 할인행사

문제 프로그래머스 lv2. 이모티콘 할인행사 원본 문제 주소: https://school.programmers.co.kr/learn/courses/30/lessons/150368 문제 해석 이모티콘 사용자의 구매기준 할인율과 이모티콘 플러스 가입기준 금액이 주어진다. 이모티콘의 가격들이 주어진다. 이모티콘 플러스 가입율을 최대화 하고 판매 금액을 최대화할 때의 가입자 수와 판매 금액을 구하는 문제 문제 풀이 할인율은 4가지 경우이고, 이모티콘의 종류는 최대 7개이므로 완전 탐색을 통해 구할 수 있다. 먼저 이모티콘 별 할인율 경우의 수를 모두 구한다. 이후 해당 경우의 수에 따라 가입자, 판매금액을 모두 구한 뒤 해당 값들을 갱신해 주면 된다. 문제 코드 def solution(users, emotico..

알고리즘/프로그래머스

[프로그래머스 / 파이썬] 2023 KAKAO BLIND RECRUITMENT 택배 배달과 수거하기

https://school.programmers.co.kr/learn/courses/30/lessons/150369 문제 해석 거리가 1 ~ n + 1에 각각 집이 존재한다. 택배 상자를 담을 수 있는 최대 값이 정해진다. 해당 집에 배달할 박스와 수거할 박스가 주어진다. 배달할 박스와 수거할 박스를 모두 가져올 최소의 거리를 구하는 문제이다. 문제 풀이 최소의 경로를 도달하기 위해서는 가장 먼 집의 경우부터 해결해 주어야한다. 가장 먼 집부터 탐색하면 배달할 박스와 수거할 박스를 구분할 필요가 없다. 따라서 그리디하게 문제를 해결할 수 있다. > 실패한 방법 (시간 초과) 처음에는 가장 먼 집부터 차례로 cap 값만큼 줄이고, 남은 상자를 추가로 다음 도달할 집에 줄여가며 구현을 했다. 하지만 n^2의..

ddingmin00
'파이썬' 태그의 글 목록 (3 Page)