python | itertools.product()를 사용해 곱집합 구하기(데카르트 곱)
·
TIL/python
집합에서 곱집합 또는 데카르트 곱은 각 집합의 원소를 성분으로 하는 튜플들의 집합을 말한다. 쉽게 말해, 두 집합 A = {1, 2}, B = {3, 4}가 있을 때 A의 원소와 B의 원소를 곱해 나올 수 있는 모든 경우의 수를 담고 있는 집합 {3, 4, 6, 8}이다. 경우의 수는 사칙연산으로 쉽게 구할 수 있지만, 집합을 구하기 위해서는 itertools 라이브러리의 product를 사용한다. 순열과 조합을 구하는 permutations, combinations과 사용법은 동일하다. product(A, B)로 A, B에 iterable한 객체를 전달하면 A와 B의 원소들을 가지고 만들 수 있는 모든 경우의 수를 보여준다. 다음은 숫자 리스트와 문자열로 product를 사용한 예이다. 의도한 바대로 ..
ChromeDriver 115 버전 이후 드라이버 다운로드 및 AttributeError 오류 해결 방법
·
TIL/오류해결
현재 시점 기준(2023.08) 크롬 드라이버가 116 버전이 되면서 이전의 방법으로는 오류가 해결되지 않는다. 115, 116 버전으로 새로 업데이트됨에 따라 새로운 드라이버를 설치해주어야 하는데 설치 방법은 다음과 같다. 아래 크롬 드라이버 다운로드 사이트에서 각 버전에 맞는 드라이버를 설치하면 된다. ChromeDriver - WebDriver for Chrome - Downloads Current Releases If you are using Chrome version 115 or newer, please consult the Chrome for Testing availability dashboard. This page provides convenient JSON endpoints for spec..
python | for 또는 *를 사용해 2차원 리스트 생성 시 주의할 부분(얕은 복사 개념)
·
TIL/python
평소와 똑같이 백준 문제를 풀고 있던 중 리스트를 만들다가 이상한 점을 발견했다. 리스트 안에 빈 리스트를 3개를 만들기 위해 다음과 같이 코드를 작성했다. A = [[] for _ in range(3)] B = [[]] * 3 A, B를 출력해 보면 [ [ ], [ ], [ ] ] 이런 형태의 2차원 리스트가 만들어지는 것을 볼 수 있다. 똑같아 보이지만 A, B는 차이가 있다. 이 차이는 값을 추가하거나 변경할 때 볼 수 있다. 다음과 같이 각 리스트의 0번 인덱스, 즉 0번 리스트에 1을 추가할 것이다. A[0].append(1) B[0].append(1) 위 코드로 우리가 의도하는 결과는 [ [1], [ ], [ ] ]이다. 하지만 실제로 A와 B를 출력해 보면 두 결과는 다른 것을 볼 수 있다...
카카오맵 리뷰 크롤링 하기 with Selenium, BeautifulSoup
·
TIL/python
공모전 준비를 위해 작성했던 크롤링 코드를 정리하는 글입니다. 크롤링 과정을 간단히 작성하면 다음과 같다. 크롬 웹드라이버에서 '전주 한옥숙소' 검색 검색 결과에서 상세정보 탭으로 이 상세정보에서 리뷰 추출 먼저 webdrvier-manager를 설치한다. pip install webdriver-manager time 라이브러리와 warning을 무시하기 위한 라이브러리를 import 한다. import time import warnings warnings.filterwarnings('ignore') 크롤링을 위해 필요한 라이브러리도 import 해준다. 동적 크롤링을 위해 selenium을 사용하였고, webdriver로는 크롬드라이버를 사용했다. from selenium import webdriver..
네이버 지도 리뷰 크롤링하기 with Selenium, BeautifulSoup
·
TIL/python
공모전 준비를 위해 작성했던 크롤링 코드를 정리하는 글입니다. 크롤링은 공공데이터포털에서 전국 숙박업소에 대한 데이터를 다운로드하여 해당 데이터에 있는 숙소명을 네이버 지도에 직접 검색하여 리뷰를 가져오는 방식으로 진행했다. 다음과 같은 데이터 df에서 '업소명' 컬럼을 사용했으며, 크롤링 과정을 간단히 작성하면 다음과 같다. 크롬 웹드라이버에서 해당 숙소의 고유 주소로 이동(크롤링 코드에서 고유 주소(url)가 나오니 참고) 해당 숙소 정보에서 리뷰 탭으로 이동 리뷰 탭으로 이동 방문자 리뷰 텍스트를 크롤링 먼저 webdrvier-manager를 설치한다. pip install webdriver-manager time 라이브러리와 warning을 무시하기 위한 라이브러리를 import 한다. impor..
Docker | error during connect: this error may indicate that the docker daemon is not running
·
TIL/오류해결
명령프롬포트에서 docker-compose build 또는 docker-compose up을 입력했을 때 다음과 같은 오류가 발생하였다. error during connect: this error may indicate that the docker daemon is not running 윈도우에서 발생하는 오류로, cmd에서 도커 명령어를 입력하기 전에 Docker Desktop을 실행하지 않으면 발생한다. 따라서, Docker Desktop을 실행시킨 뒤 다시 도커 명령어를 입력하면 정상적으로 진행되는 것을 볼 수 있다.