본문 바로가기

전체 글225

[python] 윈들리(windly) 상품 정보 크롤링 프로그램 구현 목표 (요구 사항) 윈들리(windly) 2.0 웹 사이트에서 자동 로그인을 진행하고 관심상품에 들어가 상품들의 세부 정보 (상품평, 이미지 url, 색상, 크기, 원가)를 크롤링하여 엑셀에 저장하는 프로그램을 python으로 제작하기 문제 해결을 위해 다음과 같이 flow을 설계하였다. Trouble Shooting(문제 상황 및 해결) 마주친 문제 상황 1 ) 윈들리(windly) 사이트는 구글 자동 로그인이 되어야 한다. 왜냐하면 윈들리 사이트에서 관심상품을 보기 위해서는 해당 구글 계정에 Chrome 웹 스토어의 윈들리 앱이 활성화 되어 있어야하고 로컬 컴퓨터에 마치 key와 같은 프로그램 같은게 깔려져 있어야 한다. 구글 자동 로그인을 하는 과정에서 갓 구글은 selenium과 undete.. 2024. 2. 1.
[python] 셀레니움 구글(크롬) 자동 로그인 프로그램 구현 목표 (요구 사항) 구글(Chrome) 자동 로그인이 되도록 python 프로그램을 만든다. Trouble Shooting(문제 상황 및 해결) 원래 selenium으로 만드려고 했으나 갓 구글이 거의 모든 경우를 막아놨다. 그래서 undetected_chromedriver 라이브러리를 활용했는데, 이 또한 구글이 거의 모든 경우를 막아놨다. 그래서 다소 복잡하지만 다른 방법으로 우회하였다. 계정에 저장되있는 Data로 로그인하는 방법이다. import undetected_chromedriver as uc import time import chromedriver_autoinstaller # 드라이버 자동 최신 버전 업데이트 chromedriver_autoinstaller.install() profi.. 2024. 2. 1.
[Python] PermissionError: [Errno 13] Permission denied 오류 1분만에 해결 방법 문제 상황 PermissionError: [Errno 13] Permission denied: 'C:\\Users\\johnl\\Desktop\\windly_program\\result' 위 오류 메시지와 같이 "PermissionError: [Errno 13] Permission denied" 문구가 포함된 오류에 속한다. 필자의 경우에는 크롤링 프로그램을 만들다가 해당 오류가 발생하였다. 문제 원인 - 저장할 파일의 경로명을 잘못 지정했다. - 경로를 폴더로 지정하였다. - 파일을 읽거나 쓸 수 있는 권한이 없다. 문제 해결 - 저장할 파일의 경로명을 잘못 지정한 경우 1. 경로명을 지정할 때 'C:\Users\hyeonseok\Appdata\crawling.xlsx' 이런 식으로 지정하면 안된다. .. 2024. 2. 1.
[백준 11478번 C++] 서로 다른 부분 문자열의 개수 (set/문자열) 문제 문제 분석 - 문자열의 size가 5라면, 문자열의 size가 1인 문자열, 2인 문자열, 3인 문자열, 4인 문자열, 5인 문자열을 모두 추출하고 중복을 제거하면 된다. - 중복을 제거하여 저장하는 것은 set/map 자료구조를 활용하면 된다. - 부분 문자열을 추출하기 위해서 substr을 사용하면 편하다. - 최종적으로 set에 담겨있는 문자열의 개수를 출력하면 정답이다. 정답 코드 - string.substr(a,b) 는 a번째 인덱스의 문자부터 b의 길이만큼 반환하는 것이다. ex) s = "hyeons"; s.substr(3,2); 라고 하면 3번째 인덱스인 "o"부터 2개인 "on"을 추출한다. //// str1 이 "Hello" 라면 str1.substr(3,2) 은 3번째 인자부터 .. 2024. 2. 1.
[백준 11652번 C++] 카드 (Map 활용) 문제 문제 분석 이 문제를 해결하기 위해 가장 먼저 배열로 담아서 인덱스로 접근하는 방법을 생각할 수 있다. 하지만 이 문제에서 배열로 담아서 인덱스로 접근하는 방법을 구현할 경우 -2^62~2^62의 값을 담을 수 있는 공간을 미리(선언부터) 할당해야 한다. 누가봐도 메모리 초과가 나올게 뻔하다. map과 set은 insert 연산을 통해서 데이터를 삽입할 때 공간을 할당하므로 N이 최악의 경우 100000 이어도 메모리 초과가 나지 않는다. 정답 코드 - map의 value 값을 정렬하기 위해서 map의 값을 vector로 옮겨 정렬하였다. // 1안 )배열 인덱스를 활용 -> 배열은 먼저 메모리에 할당을 해놔야 하기 때문에 수의 범위가 -2^62~2^62인 숫자들을 담을 공간을 마련하려면 메모리 초.. 2024. 1. 31.