본문 바로가기
728x90

전체 글136

네이버 증권 파이썬(Python)을 이용하여 주식 정보 크롤링하기(Request, BeautifulSoup) 2편 지난글 보러가기 https://dev-guardy.tistory.com/117 네이버 증권 파이썬(Python)을 이용하여 주식 정보 크롤링하기(Request, BeautifulSoup) 1편오늘은 파이썬을 이용하여 네이버 증권에서 시가총액순으로 나와있는 종목 정보를 크롤링하려고 한다.다음 페이지 주소는 다음과 같다.https://finance.naver.com/sise/sise_market_sum.naver?sosok=0&page=1 시가dev-guardy.tistory.com저번에 만들었던 코드는 다음과 같다.import requestsfrom bs4 import BeautifulSoupimport reresp = requests.get('https://finance.naver.com/sise/sis.. 2024. 10. 28.
네이버 증권 파이썬(Python)을 이용하여 주식 정보 크롤링하기(Request, BeautifulSoup) 1편 오늘은 파이썬을 이용하여 네이버 증권에서 시가총액순으로 나와있는 종목 정보를 크롤링하려고 한다.다음 페이지 주소는 다음과 같다.https://finance.naver.com/sise/sise_market_sum.naver?sosok=0&page=1 시가총액 : 네이버페이 증권관심종목의 실시간 주가를 가장 빠르게 확인하는 곳finance.naver.com보면 sosok이 0인경우 코스피 sosok이 1인경우 코스닥인 것을 확인할 수 있다.이제 크롬 개발자 도구로 소스를 Request된 data를 살펴보면 1 삼성전자 58,300 상승 2,400 +4.29% 100 3,480,3.. 2024. 10. 28.
백준 경사로 [14890] 파이썬(Python) 코드 + 해설 문제 이해하기문제 설명지도 크기: N×N ( 2≤N≤100 2≤N≤100 )각 칸에는 그곳의 높이가 적혀 있습니다 ( 1≤높이≤10 1≤높이≤10 ).길: 한 행 또는 한 열 전체를 말하며, 총 2N개의 길이 있습니다.길을 지나갈 수 있으려면 다음 조건을 만족해야 합니다:길에 속한 모든 칸의 높이가 같거나,경사로를 놓아서 지나갈 수 있어야 합니다.경사로 놓는 조건경사로의 특성:높이: 1길이: L ( 1 ≤ 𝐿 ≤ 𝑁 1≤L≤N )경사로의 개수는 충분히 많습니다.경사로를 놓을 수 있는 조건:경사로는 낮은 칸에 놓이며, L개의 연속된 칸에 경사로의 바닥이 모두 접해야 합니다.낮은 칸과 높은 칸의 높이 차이는 1이어야 합니다.경사로를 놓을 낮은 칸의 높이는 모두 같아야 합니다.이미 경사로를 놓은 곳에는 다.. 2024. 10. 28.
백준 스타트와 링크 [14889] 파이썬(Python) 코드 + 해설 문제 이해하기이 문제는 브루트 포스와 백트래킹 관련 문제입니다.해결 방법팀 조합 생성: N명의 사람들 중 N/2명을 선택하여 한 팀을 구성하고, 나머지 N/2명은 다른 팀을 구성합니다.능력치 계산: 각 팀에 대해 팀에 속한 모든 쌍의 사람들에 대해 능력치를 합산합니다.차이 계산 및 최소화: 두 팀의 능력치 합의 차이를 계산하고, 그 중 최소값을 찾습니다.구현 방법입력 받기N과 능력치 행렬 SSS를 입력받습니다.사람의 번호는 0부터 N-1까지로 설정합니다.모든 팀 조합 생성N명의 사람들 중 N/2명을 선택하는 모든 조합을 생성합니다.itertools.combinations를 사용합니다.조합의 대칭성을 이용하여 전체 조합의 절반만 고려합니다.팀 능력치 합 계산각 팀 조합에 대해 다음을 수행합니다:팀 A의 능.. 2024. 10. 27.
백준 연산자 끼워넣기 [14888] 파이썬(Python) 코드 + 해설 해결 전략이 문제는 가능한 모든 연산자 배치를 시도하여 결과의 최댓값과 최솟값을 찾는 백트래킹(DFS) 문제입니다.알고리즘 개요입력받기: 수열과 연산자 개수를 입력받습니다.백트래킹 함수 구현:현재까지의 계산 결과, 사용한 연산자 개수, 수열의 인덱스를 인자로 받습니다.모든 연산자 배치를 시도합니다.각 연산자 배치마다 결과를 계산하고, 최댓값과 최솟값을 갱신합니다.나눗셈 구현:나눗셈에서 음수 처리를 문제의 요구사항에 맞게 구현합니다.결과 출력: 최종적으로 구한 최댓값과 최솟값을 출력합니다. 핵심 포인트백트래킹을 통한 완전 탐색: 모든 가능한 연산자 배치를 시도하여 최적해를 찾습니다.나눗셈의 정확한 구현: 파이썬의 나눗셈 연산과 문제의 요구사항의 차이를 이해하고 올바르게 구현합니다.연산자 우선순위 무시: 계.. 2024. 10. 26.
백준 로봇 청소기 [14503] 파이썬(Python) 코드 + 해설 문제 이해하기이 문제는 로봇 청소기가 방을 돌아다니며 청소하는 영역의 개수를 구하는 것이다.문제 설명방의 구조: N x M 크기의 직사각형 방이 있고, 각 칸은 벽(1) 또는 빈 칸(0)이다.로봇 청소기의 위치와 방향:좌표 (r, c)에 위치해 있으며, 방향 d를 가지고 있다.방향 d는 북(0), 동(1), 남(2), 서(3) 중 하나이다.로봇 청소기의 작동 방식:현재 위치를 청소한다.현재 위치에서 다음을 반복한다:주변 4칸 중 청소되지 않은 빈 칸이 있는지 확인한다.있다면, 반시계 방향으로 90도 회전하고, 전진한다.없다면, 바라보는 방향을 유지한 채로 후진한다.후진할 수 없다면 작동을 멈춘다.청소한 칸의 개수를 구한다.해결 방법: 시뮬레이션 구현이 문제는 로봇 청소기의 동작을 그대로 구현하는 시뮬레이.. 2024. 10. 25.
백준 연구소 [14502] 파이썬(Python) 코드 + 해설 #완전 탐색과 BFS 이 문제는 바이러스가 유출된 연구소에서 벽을 세워 바이러스의 확산을 막고, 안전 영역의 최대 크기를 구하는 것이 목표이다.문제 설명연구소 지도: N x M 크기의 직사각형이며, 각 칸은 다음 중 하나이다:빈 칸: 0벽: 1바이러스: 2바이러스 확산: 바이러스는 상하좌우로 인접한 빈 칸으로 퍼져나간다.벽 세우기:새로 세울 수 있는 벽의 개수는 정확히 3개이다.벽은 빈 칸에만 세울 수 있다.목표: 벽을 적절히 세워서 안전 영역(바이러스가 퍼질 수 없는 영역)의 크기를 최대로 만드는 것이다.해결 방법: 완전 탐색과 BFS 사용이 문제는 다음과 같은 방법으로 해결할 수 있다:모든 벽 세우기 경우의 수를 탐색한다:빈 칸 중에서 3개를 선택하여 벽을 세우는 모든 조합을 생성한다.N과 M이 최대.. 2024. 10. 24.
백준 퇴사 [14501] Python 코드 + 해설 문제 설명 1상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다.오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다.백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다.각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다.N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일2일3일4일5일6일7일TiPi35112421020102015402001일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은 10이다. 5일에 잡혀있는 상담은 총 2일이 걸리며, 받을 수 있는 금액은 15이다.상담을 하는데 필요한 기간은 1일보다.. 2024. 10. 23.
파이썬(Python) Session Cookie Request 헤더(Header)에 집어넣기 파이썬으로 크롤링을 하다보면 requests의 Session의 쿠키(Cookie)를 새로운 Request의 헤더에 포함시켜야할 때가 있다.이럴때 사용할 수 있는 방법을 소개하려고 한다.먼저 session.cookies.get_dict()으로 현재 세션의 쿠키를 딕셔너리 형태로 가져온다.session.cookies.get_dict()그 다음 그 쿠키들을 헤더의 Cookie 필드에 추가하기 위해 '; '.join([f'{name}={value}' for name, value in cookies.items()])로 변환한다.'Cookie': '; '.join([f'{name}={value}' for name, value in cookies.items()])마지막으로 새로운 request에 해당 쿠키를 포함시켜.. 2024. 10. 23.
728x90