LeeHyunjoo

[selenium] 크롤링 시 robots.txt 를 통해 법적 문제 확인하기

크롤링을 하며 접근이 막혀 안 되는 경우가 있었는데, 이외에도 크롤링은 되지만 저작권 문제와 같이 법적으로 문제가 있을 수 있는 경우를 조심해야 한다. 그래서 문제점이 발생할 수 있는 것을 사전에 확인할 방법에 대해 알아보았다.웹사이트에서 데이터를 수집하기 전에 robots.txt 파일을 통해 이를 확인할 수 있다. 이 파일은 웹사이트 소유자가 웹 크롤러(예: 검색 엔진 또는 자동화 스크립트)에 대해 크롤링 가능한 경로와 불가능한 경로를 명시적으로 안내하는 표준 파일이다.(이 글은 Cloudflare의 What is robots.txt? 내용을 참고하여 작성되었다. + GPT..)1. robots.txt란?robots.txt는 웹사이트 루트 디렉토리에 위치한 텍스트 파일로, 크롤러가 따라야 할 규칙을 정..

[백준] 1021번 : 회전하는 큐

1021번: 회전하는 큐 (acmicpc.net) 1021번: 회전하는 큐첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가www.acmicpc.net 문제를 간단히 설명하자면 양쪽으로 stack 과 pop이 가능한 양방향 순환 큐가 있다.이때 입력 받는 값이 큐의 크기 N, 뽑아내려고 하는 수의 개수 M, 뽑아내려는 하는 수의 위치 , 즉 뽑아내려는 수의 index 가 있다. 큐는 보통 리스트를 사용하는데 양방향에서 수를 넣고 빼야 하기 때문에 그것이 가능한 deque 를 사용한다. 큐의 크기 N 이 주어지면 deque의 크기를 설정하고 범위를 N만큼 순차적..

[selenium]윈도우에서 selenium이용해 구글 이미지 크롤링하기

윈도우에서 selenium을 이용한 이미지 크롤링 실습을 해보자. 먼저, 파이썬에 가상 환경을 만들어 실행해 보자.파이썬  venv 모듈을 이용하여 가상 환경을 만들어 준다. venv — 가상 환경 생성 — Python 3.10.1 문서 venv — 가상 환경 생성 — Python 3.10.1 문서venv — 가상 환경 생성 소스 코드: Lib/venv/ venv 모듈은 자체 사이트 디렉터리를 갖는 경량 《가상 환경》을 만들고, 선택적으로 시스템 사이트 디렉터리에서 격리할 수 있도록 지원합니다. 각 가docs.python.org위 사이트에 들어가면 venv 가상 환경을 만드는 명령어가 소개되어 있다. 일단 아래 명령어를 사용하여 가상환경을 만들어 주었다.자신이 설치한 python 버전에 따라 (예: py..

[selenium]윈도우에서 selenium,chrome,chromedriver 설치 및 검색 자동화 실습 해보기

Selenium이란 ?셀레늄(Selenium)은 웹 애플리케이션 테스트를 위한 포터블 프레임워크이다. 셀레늄은 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 플레이백 도구를 제공한다. (셀례늄 IDE) C 샤프, 그루비, 자바, 펄, PHP, 파이썬, 루비, 스칼라 등 수많은 유명 프로그래밍 언어들에서 테스트를 작성하기 위한 테스트 도메인 특화 언어(Selenese)를 제공한다. 이 테스트들은 현대의 대부분의 웹 브라우저에서 수행이 가능하다. 셀레늄은 윈도우, 리눅스, macOS 플랫폼에서 디플로이된다. 아파치 2.0 라이선스로 배포되는 오픈 소스 소프트웨어이다. 웹 개발자는 무료로 다운로드, 사용할 수 있다.Selenium webdriver란?셀레늄 웹 드라이버(Selenium W..

2908번: 상수

2908번: 상수 (acmicpc.net) 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net >> 문자열 뒤집는 방법 a="python" a_re=a[::-1] A,B=map(str,input().split()) A_reverse=int(A[::-1]) B_reverse=int(B[::-1]) print(max(A_reverse,B_reverse))

5355번: 화성 수학

5355번: 화성 수학 (acmicpc.net) 5355번: 화성 수학 겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. (3996번) 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산 www.acmicpc.net >> 리스트로 화성식 입력 받은 후, 문자열로 입력받은 리스트 원소 중 첫번째 원소는 실수로 변경한다. @는 *3 %는 +5 #는 -7 로 계산한다. T=int(input()) for _ in range(T): result=0 m=list(map(str,input().split())) m[0]=float(m[0]) for i in m: if i=='@': result*=3 elif i=='%'..

9613번: GCD 합

9613번: GCD 합 (acmicpc.net) 9613번: GCD 합 첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진 www.acmicpc.net import math t=int(input()) for _ in range(t): sum=0 a=list(map(int,input().split())) n=a.pop(0) for j in range(n): for k in range(n): if j

1934번: 최소공배수

1934번: 최소공배수 (acmicpc.net) 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net import math T=int(input()) for i in range(T): a,b=map(int,input().split()) g=math.gcd(a,b) print(g*(a//g)*(b//g))

2609번: 최대공약수와 최소공배수

2609번: 최대공약수와 최소공배수 (acmicpc.net) 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net >> gcd=최대공약수 lcm=최소공배수 math 라이브러리를 이용하여 최대공약수를 구하고 최소공배수는 최대공약수와 두 수를 최대공약수로 나눈 몫을 모두 곱하여 구한다. import math a,b=map(int,input().split()) g=math.gcd(a,b) print(g) print(g*(a//g)*(b//g))